WAF 规则使用 XML 变量(具有 XPath 表达式)来指定必须检查的 XML 请求正文片段。
示例:
SecRule XML:/* text_to_match "id:1,phase:2,log,deny,status:403"
如果 XML 请求的文本表示与 text_to_match
匹配,则 WAF 会阻止该请求。此外,也可以使用 XPath 表达式指定 XML 例外,例如,XML:/*
。
WAF 规则使用 XML:/*
表达式来启用对整个 XML 请求正文的处理。在 WAF 例外中使用 XPath 表达式是一种功能强大的方法,可以将 WAF 配置为跳过对整个 XML 文档的检查,或仅从 WAF 检查中选择性地排除 XML 文档的某些部分。
在常见场景中,当 CRS 规则生成误报 WAF 命中时,按照建议的辅助工作流一节中所述的步骤禁用给定规则的 XML 处理就足够了。用户还可以手动配置一个例外并指定 XPath 表达式,以便从 WAF 规则处理中排除文档的某些部分。
示例:XML 请求正文:
<example> <username>joe</username> <password>!@#$%</password> </example>
WAF 规则生成一个命中:
match element: XML:/*
如果选择执行建议的辅助工作流中的步骤,匹配元素 XML:/*
将用于从规则 12345
中禁用对整个 XML 文档的处理。您还可以创建规则级别的例外,并将匹配元素指定为 XML:/example/password
,以便仅排除导致 WAF 命中的元素。因此,WAF 将继续检查 XML 文档的其余部分。