跳转到内容
搜索文档

安全特性互通性

最后更新 查看 MarkdownAgent 设置

Cloudflare 会对每个进入请求应用多项安全功能。每个功能在固定阶段执行,执行顺序决定先后作用。理解该顺序有助于避免冲突并降低误报。

执行顺序

规则集引擎(Ruleset Engine) 驱动的 Cloudflare 安全功能按固定阶段序列执行。请求到达时,会依次经过每个阶段。如果某条规则触发了终止动作(terminating action),例如 拦截(Block)受管质询(Managed Challenge),请求会提前停止,不会进入后续阶段。

安全相关请求阶段按执行顺序如下:

阶段名称 产品
ddos_l7 HTTP DDoS 攻击防护(HTTP DDoS Attack Protection)
http_request_firewall_custom 自定义规则
http_ratelimit 速率限制规则
http_request_firewall_managed 托管规则
http_request_sbfm Super Bot Fight Mode

在每个阶段内,账号级规则集先于域级规则集执行。

规则集引擎(Ruleset Engine)不仅驱动安全产品,也支持其他 Cloudflare 产品。完整的请求与响应阶段列表请参见 阶段列表(Phases)

不在规则集引擎范围内的功能

以下安全功能不由 Ruleset Engine 提供,且会独立执行:

由于这些功能独立执行,它们不会遵循上述阶段顺序。

安全特性总览

DDoS 防护

DDoS 防护 对所有 Cloudflare 计划默认开启。L7 HTTP DDoS 攻击防护用于检测并缓解应用层 DDoS 攻击;L3/4 网络层 DDoS 攻击防护处理网络层攻击。DDoS 防护无需您手动开启或配置。

自定义规则

自定义规则是您自定义的规则,运行于 http_request_firewall_custom 阶段,支持 拦截(Block)受管质询(Managed Challenge)跳过(Skip)记录(Log) 等动作。您可以在表达式中引用 bot score 字段、WAF 攻击评分 字段以及全部标准请求字段。

速率限制规则

速率限制规则 用于限制或阻断超过定义请求速率的流量,运行于 http_ratelimit 阶段,自定义规则之后。

托管规则

托管规则 是 Cloudflare 维护的预配置规则集,包含 Cloudflare 托管规则集OWASP Core Ruleset,运行于 http_request_firewall_managed 阶段。

Bot Fight Mode(机器人质询)

Bot Fight Mode 在 Free 方案可用。它是一个简化的开关式功能,用于质询匹配已知 bot 模式的流量。该功能无法自定义,也不能用自定义规则跳过。

Super Bot Fight Mode(高级 Bot 质询)

Super Bot Fight Mode(SBFM)适用于 Pro、Business 与 Enterprise 计划(不含 Bot Management 附加组件),运行于 http_request_sbfm 阶段,权限更高于 Bot Fight Mode。您可为 Definitely automated(确定自动化)Likely automated(可能自动化)Verified bots(已验证 bot) 流量分别配置不同动作。您还可以在自定义规则中使用 跳过(Skip) 动作 跳过特定请求的 SBFM。

Bot Management(Bot 管理)

Bot Management 是 Enterprise 附加组件,为每个请求生成 199 的 bot score。分值越低代表自动化程度更高。您可以使用 cf.bot_management.score 在自定义规则中按分值执行动作。更多信息请参见 Bot Management 变量

关键交互规则

这些规则决定安全功能之间的交互方式:

  • 终止类动作会中断请求评估流程。 如果某条规则阻断或质询请求,Cloudflare 不会继续评估后续阶段。
  • 自定义规则先于 SBFM 执行。 自定义规则中的终止动作会阻止 Super Bot Fight Mode 对该请求继续评估。
  • 跳过(Skip)动作可跳过后续阶段。 您可以在自定义规则中使用 跳过(Skip) 动作 跳过速率限制规则(http_ratelimit)、Super Bot Fight Mode(http_request_sbfm)和托管规则(http_request_firewall_managed)。
  • Bot Fight Mode 无法跳过。 Bot Fight Mode 不属于规则集引擎(Ruleset Engine),自定义规则不能跳过该功能。若需豁免 bot 防护,可升级至 Super Bot Fight Mode 或 Bot Management。
  • Bot Management 分值可用于自定义规则。 Enterprise 客户可在自定义规则表达式中使用 cf.bot_management.score,按路径、用户代理(User Agent)或任意其他请求属性定义自定义阈值。

常见场景

小型网站(Free 计划)

Free 计划包含 DDoS 防护和 Bot Fight Mode。

  • DDoS 防护对每个请求自动生效。
  • Security(安全) > Settings(设置) 下开启 Bot Fight Mode,以质询已知 bot 模式。
  • 开启 Block AI Bots(阻止 AI Bot) 可防止 AI 爬虫抓取内容。

由于 Bot Fight Mode 无法跳过或自定义,您不能为特定 bot 创建例外。如果 Bot Fight Mode 对合法自动化流量(例如监控服务或支付服务)产生误报,可考虑升级到包含 Super Bot Fight Mode 的 Pro 或 Business 计划。

电商网站(Pro 或 Business 计划)

Pro 或 Business 计划额外提供 Super Bot Fight Mode、自定义规则和托管规则。

  • DDoS 防护自动生效。
  • 打开 Super Bot Fight Mode,阻断自动化和高概率自动化流量。
  • 部署 托管规则 保护网站,覆盖 SQL 注入、跨站脚本等常见漏洞。
  • 使用自定义规则中的 跳过(Skip) 动作允许合法自动化流量通过,同时让 SBFM 阻断其他恶意 bot。可使用如下规则:
    • 将规则表达式设为与您的支付处理方 IP 或用户代理(User Agent)匹配。
    • 将动作设置为 跳过(Skip),并选择 Super Bot Fight Mode

企业 API 与网站(Enterprise 计划)

开启 Bot Management 附加组件的 Enterprise 计划提供最高灵活度。

  • DDoS 防护自动运行。
  • Bot Management 为每个请求生成 bot score。
  • 使用引用 cf.bot_management.score 的自定义规则定义您的阈值,例如将网站路径中 bot score 低于 20 的请求拦截,而对经过合作方认证的 API 路径放开全部分值。
  • 使用速率限制规则限制滥用流量模式。
  • 部署托管规则防护已知漏洞。

排查冲突

当安全功能影响到合法流量时,可按以下步骤定位并处理。

确认是哪项功能拦截了请求

使用 安全事件(Security Events) 查找触发拦截的功能:

  1. 在 Cloudflare 仪表板中,前往 Analytics(分析) 页面。

    Go to Analytics ↗
  2. 选择 Events(事件) 选项卡。

  3. 在日志中找到被拦截请求。

  4. 检查 Service(服务) 字段以确认是哪项产品触发了动作,由此判断要调整的功能。

  1. 登录 Cloudflare 仪表板,并选择账号与域名。
  2. 转到 Security(安全) > Events(事件)
  3. 在日志中找到被拦截请求。
  4. 检查 Service(服务) 字段以确定是哪个产品执行了该动作。

处理 Bot Fight Mode 误报

Bot Fight Mode 不支持例外规则。可选方案:

  • Security(安全) > Settings(设置) 下关闭 Bot Fight Mode。
  • 升级到支持跳过规则的 Super Bot Fight Mode 计划。

更多信息请参阅 处理 Bot Fight Mode 或 Super Bot Fight Mode 的误报

处理 Super Bot Fight Mode 误报

为受影响流量创建一条带 跳过(Skip) 动作的自定义规则,跳过 SBFM:

  1. 在 Cloudflare 仪表板中,前往 Security(安全) > Security rules(安全规则) 页面。

    Go to Security rules ↗
  2. 选择 Create rule(创建规则) > Custom rules(自定义规则)

  3. 定义可匹配合法流量的表达式(例如特定 IP 段或用户代理(User Agent))。

  4. 将动作设置为 跳过(Skip),并选择 Super Bot Fight Mode

  1. 登录 Cloudflare 仪表板,并选择账号与域名。
  2. 转到 Security(安全) > WAF > Custom rules(自定义规则)
  3. 选择 Create rule(创建规则)
  4. 定义可匹配合法流量的表达式(例如特定 IP 段或用户代理(User Agent))。
  5. 将动作设置为 跳过(Skip),并选择 Super Bot Fight Mode

更多信息请参阅 处理 Bot Fight Mode 或 Super Bot Fight Mode 的误报

处理托管规则误报

若托管规则拦截了合法流量:

  • 创建 WAF 例外(WAF exception),对匹配请求跳过某些规则或规则集。
  • 如果某些规则不适用于您的应用,可在托管规则集中禁用单条规则。

更多处理建议请参见 托管规则排查

这篇文档对您有帮助吗?