Cloudflare 在 阶段中处理请求相关功能。某条规则单独看似正确,但若请求已被其他产品修改或终止,其实际行为可能不同。
Cloudflare 先执行 URL Rewrite 规则,再执行 自定义规则。
如果一条 transform 规则将 /public-login 重写为 /internal/login,后续 WAF 阶段会基于重写后的路径进行评估。
这意味着:
- 与
/public-login匹配的自定义规则可能在重写后不再触发。 - 与
/internal/login匹配的自定义规则可能触发,即使访客实际请求的是/public-login。
排查自定义规则时,请先确认 WAF 评估前是否已有重写规则改写 URL。可使用 Trace 基于示例请求检查规则的实际执行顺序。
更多信息请参阅 阶段列表中的请求执行顺序。
IP Access 规则 会先于 WAF 自定义规则执行。
如果某条带有 Allow 动作的 IP Access 规则匹配该请求,Cloudflare 将不会继续评估该请求的后续自定义规则。
- 某个 IP 地址对应的自定义规则可能看起来“未触发”,即使表达式本身正确。
- 对源 IP 过早执行白名单放行,可能会阻止其他应用安全逻辑(即自定义规则)运行。
如果请求意外绕过了自定义规则,请先检查是否有匹配的 IP Access 规则。
IP Access 规则中的 Allow 动作,与 WAF 自定义规则中的 Skip 动作行为不同。
IP Access 规则中的 Allow 会绕过 WAF 自定义规则、速率限制规则、WAF 托管规则(按国家级拦截规则除外)以及已弃用的防火墙规则。任何匹配都不会出现在 Security Events 中。通过 Allow 的请求不会再进入 WAF 自定义规则阶段,包括任何日志或跟踪规则。
WAF 自定义规则中的 Skip 动作用于让 Cloudflare 有选择地跳过特定应用安全产品或组件(例如 WAF 托管规则)。根据带 Skip 的自定义规则配置,其他安全产品仍可能评估该请求并对其进行拦截。
WAF 自定义规则不提供 Allow 动作。若要控制匹配请求需要绕过哪些环节,请使用 Skip 动作,并选择要跳过的产品或阶段。
请检查您的配置(尤其是 IP Access 规则和带 Skip 动作的自定义规则),确认最终行为是否符合预期。
如果 WAF 托管规则集中的某些规则阻止了应放行的请求,您可以创建 WAF 例外,按请求粒度跳过特定托管规则或规则集,而不是完全跳过 WAF 托管规则。
Page Rules 属于遗留行为,和现代 Rules 产品不完全一致。
在混合配置下,您可能会看到:
- 重写影响自定义规则和托管规则
- 指向同一路径的 Page Rule 与现代规则得到不同结果
如果条件允许,建议将旧的 Page Rules 行为迁移到当前 Rules 产品,让请求始终按同一模型评估。
当某次 WAF 判定看起来异常时:
- 检查是否存在较早的请求重写。
- 检查是否有匹配的 IP Access 规则。
- 确认该请求是否应在自定义规则阶段停止,或应跳过后续阶段。
- 检查自定义规则匹配后是否仍执行了托管规则。
- 如条件允许,使用 Trace 确认各阶段实际执行结果。