默认情况下,WAF 托管规则集对多数网站和 Web 应用都兼容,但仍可能出现误报与漏报。
- False positives(误报):合法请求被检测并作为恶意请求缓解拦截。
- False negatives(漏报):恶意请求未被缓解,并到达了您的源站服务器。
您可以使用 Security Events 辅助确认合法请求被拦截的原因。根据需要添加筛选器并调整报告时长。
若遇到托管规则导致的误报,请按以下方式处理:
-
添加例外:例外 允许在特定请求上跳过 WAF 托管规则集或其部分规则执行。
调整 OWASP 托管规则集:被 ID 为
、描述为 949110: Inbound Anomaly Score Exceeded的规则拦截的请求,通常对应 Cloudflare OWASP Core Ruleset。可参考 配置 OWASP 托管规则集 进行处理。-
禁用对应托管规则:创建覆盖(override)禁用特定规则。该操作可降低误报风险,但会同步降低整体防护水平。请参阅 Cloudflare 仪表板指引 或 API 指引 创建覆盖。
-
若单条规则引发误报,请仅停用该规则,不要停用整个规则集。
-
对网站管理区出现误报的场景,添加 例外 并对站点管理区资源禁用对应托管规则。可使用如下示例表达式:
http.host eq "example.com" and starts_with(http.request.uri.path, "/admin")
要定位漏报,请先检查源站服务器上的 HTTP 日志。
可按以下清单逐项排查:
-
HTTP 流量对应的 DNS 记录是否 经过 Cloudflare 代理?
Cloudflare 仅对代理流量生效。 -
托管规则是否被某个 例外 跳过?
使用 Security Events 查找被跳过的请求;必要时,调整例外表达式,使其匹配应被拦截的攻击流量。 -
是否已启用所有默认未开启的必需托管规则?
WAF 托管规则集中的部分规则默认未启用,请逐条核对相关规则。- 例如,Cloudflare 默认允许空 User-Agent 的请求。若要拦截空 User-Agent 请求,请在 Cloudflare 托管规则集中启用 ID 为
的规则。 - 另一个示例:若需拦截未缓解的 SQL 注入(SQLi)攻击,请确保 Cloudflare 托管规则集中与
sqli标签相关的规则已启用。
配置说明请参见 配置托管规则集。
- 例如,Cloudflare 默认允许空 User-Agent 的请求。若要拦截空 User-Agent 请求,请在 Cloudflare 托管规则集中启用 ID 为
-
攻击流量是否被自定义规则中的 Skip 所有托管规则 命中并跳过?
如有需要,请调整自定义规则表达式,避免其覆盖到该类攻击流量。 -
攻击流量是否在 IP Access 规则 中被允许的 ASN、IP 段或 IP 匹配?
检查 IP Access 规则,确认白名单规则不应匹配这些攻击流量。 -
恶意流量是否直接打到源站 IP 地址,从而绕过 Cloudflare 保护?
在源站层面只放行 Cloudflare 的 IP 地址 外部的流量。
若以上核查完成后,WAF 托管规则仍未检测到某类攻击模式,可考虑: