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 文档的其余部分。