Bot Fight Mode 是一款简单且免费的产品,可帮助检测并缓解您域名上的 bot 流量。启用后,该产品将:
- 识别符合已知 bot 模式的流量。
- 发起计算昂贵的质询,迫使发出请求的客户端执行 CPU 密集型计算,从而增加 bot 发送自动化请求的成本。
- 通知 Bandwidth Alliance ↗ 合作伙伴(如果适用)以禁用 bot。
Bot Fight Mode 和 Super Bot Fight Mode 使用与我们的 Bot Management ↗ 产品相同的底层技术。具体而言,这些产品:
- 保护整个域名,无端点限制
- 无法通过 WAF 自定义规则进行自定义、调整或重新配置
尽管这些产品旨在对抗互联网上的恶意行为者,但可能会对 API 或移动应用流量发起质询。如需更精细的控制,请升级到面向 Enterprise 的 Bot Management。
如果你同时使用多种应用安全功能(如 custom rules、Managed Rules 和 Bot Fight Mode),了解这些功能如何交互以及它们的执行顺序非常重要。更多信息请参阅安全功能互操作性。
要开始使用 Bot Fight Mode:
-
在 Cloudflare 仪表板中,转到 Security settings(安全设置) 页面。
Go to Settings ↗ -
按 Bot traffic(机器人流量) 筛选。
-
转到 Bot fight mode。
-
开启 Bot fight mode。
- 登录 Cloudflare 仪表板 ↗,选择您的账户和域名。
- 转到 Security(安全性) > Bots(机器人)。
- 对于 Bot Fight Mode,选择 On(开启)。
如果您发现 Bot Fight Mode 对您的应用程序流量造成了问题,您可能需要禁用它。
要禁用 Bot Fight Mode:
-
在 Cloudflare 仪表板中,前往 Security settings(安全设置) 页面。
Go to Settings ↗ -
按 Bot traffic(Bot 流量) 过滤。
-
前往 Bot Fight Mode。
-
关闭 Bot Fight Mode。
- 登录到 Cloudflare 仪表板 ↗,并选择您的账户和域。
- 前往 Security(安全) > Bots。
- 在 Bot Fight Mode 处,选择 Off(关闭)。
请参阅 阻止 AI Bot。
您可以通过转到 Security(安全) > Events(事件) 来查看与 bot 相关的操作。被该产品质询的任何请求都将在 Service(服务) 字段中被标记为 Bot Fight Mode。这允许您观察、分析和跟踪您的 bot 流量随时间变化的趋势。
您无法使用 WAF 自定义规则或页面规则 (Page Rules) 绕过或跳过 Bot Fight Mode。这是因为 Bot Fight Mode 不在 规则集引擎 (Ruleset Engine) 上运行 — 它在一个单独的评估管道中运行,在该管道中,Skip (跳过)、Bypass (绕过) 和 Allow (允许) 操作不起作用。
如果您需要为特定流量配置例外(例如,您自己的 API 客户端或监控工具),请使用 Super Bot Fight Mode。Super Bot Fight Mode 在规则集引擎上运行并支持 Skip 规则。
如果您配置了 IP 访问规则 (IP Access rules),Bot Fight Mode 仍可以触发,但如果 IP 访问规则先匹配了请求,则它不会触发。
对于 Bot Fight Mode 客户,JavaScript Detections 是 自动启用且无法禁用。
如果您设置了内容安全策略(CSP),则需要执行额外步骤来实现 JavaScript 检测:
- 确保允许
/cdn-cgi/challenge-platform/下的所有内容。您的 CSP 应允许来自您源域名的脚本(script-src self)。 - 对于
nonce脚本标签:-
如果您的 CSP 对脚本标签使用
nonce,Cloudflare 将通过解析您的 CSP 响应标头,将这些 nonce 添加到其注入的脚本中。 -
如果您的 CSP 对脚本标签未使用
nonce且已启用 JavaScript 检测,您可能会看到如下控制台错误:Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-b123b8a70+4jEj+d6gWI9U6IilUJIrlnRJbRR/uQl2Jc='), or a nonce ('nonce-...') is required to enable inline execution.我们强烈不建议使用unsafe-inline,而是推荐在脚本标签中使用 CSPnonce,我们会解析并在我们的 CDN 中支持该方式。
-