Cloudflare Bot Fight Mode 放行:误拦 API、监控与 AI 爬虫的最小修复方案

Cloudflare Bot Fight Mode 放行:误拦 API、监控与 AI 爬虫的最小修复方案

**Cloudflare Bot Fight Mode 放行的关键结论是:免费版 Bot Fight Mode 不能用 WAF Custom Rules、Page Rules 或普通 Allow/Skip 规则精确绕过。**如果合法 API、监控探针、支付回调或 AI 爬虫被误伤,通常要在“关闭 BFM、使用 IP Access Rule 命中前置放行、升级 Super Bot Fight Mode 后用 Skip”之间选择。

这篇文章面向站长、SaaS 技术负责人和增长团队,重点解决一个现实问题:既不想裸奔关闭防护,又要让业务机器人、搜索引擎和 AI 抓取能够访问关键页面。

Cloudflare Bot Fight Mode 放行排查流程图

什么是 Bot Fight Mode,为什么会误拦合法流量?

Bot Fight Mode 是 Cloudflare 面向站点的基础机器人防护功能,会识别疑似自动化请求并发起高成本挑战。它适合快速压制恶意爬虫,但不适合需要精细放行的 API、Webhook、监控和 AI 爬虫场景。

Cloudflare 官方文档明确说明,Bot Fight Mode 不运行在普通 Ruleset Engine 中,因此 WAF 自定义规则里的 Skip、Bypass、Allow 对它不一定生效;官方也提示,如需给特定流量创建例外,应使用 Super Bot Fight Mode 或更高级的 Bot Management。可参考 Cloudflare Bot Fight Mode 官方说明

误拦常见于三类流量:

  • 无浏览器能力的请求:服务器回调、内部脚本、健康检查。
  • 高频但合法的访问:监控探针、SEO 抓取、价格同步。
  • AI 与搜索相关机器人:部分 UA、IP 或行为特征看起来像自动化抓取。

免费版能不能做 Cloudflare Bot Fight Mode 放行?

免费版可以“降低误伤”,但不能像防火墙白名单那样对 Bot Fight Mode 做精确 Skip。最稳妥的选择是:只在攻击期临时开启 BFM,平时用 WAF、Rate Limiting、robots.txt 与源站规则做分层防护。

Cloudflare 在误报处理文档中写明,Bot Fight Mode 不能通过 WAF Skip 或 Page Rules 绕过;如果持续出现误报,可关闭该功能,或改用支持例外规则的 Super Bot Fight Mode。详见 Cloudflare 处理 Bot Fight Mode 误报文档

可执行判断如下:

场景 免费版建议 风险
正在遭遇明显恶意爬虫 临时开启 Bot Fight Mode 可能误伤 API、回调、AI 爬虫
只有少量垃圾请求 优先用 WAF Custom Rules 和限速 规则需要持续维护
需要放行固定合作方 IP 先测试 IP Access Rule 是否命中在前 不能替代完整例外机制
需要按路径、UA、国家精确放行 升级 Super Bot Fight Mode 有订阅成本
站点依赖 AI 搜索可见性 不建议长期粗暴开启 BFM 可能影响抓取和引用

最小放行策略:先分清是哪一层拦截

放行前不要直接加白名单。正确顺序是先定位拦截来源:Cloudflare 安全事件里 Service 字段如果显示 Bot Fight Mode,说明普通 WAF 放行规则很可能不是解法;如果显示 Managed Rules 或自定义规则,才调整对应规则。

建议按 4 步排查:

  1. 看 Cloudflare Security Events
    进入 Security 或 Analytics 的 Events,筛选被拦截请求,记录 Ray ID、路径、IP、UA、Action 与 Service。

  2. 确认是否真由 BFM 触发
    如果 Service 是 Bot Fight Mode,先不要反复改 WAF Allow 规则。官方互操作文档也指出,BFM 误报通常只能关闭或迁移到支持 Skip 的方案;见 Cloudflare 安全功能互操作说明

  3. 按业务价值分级
    支付回调、登录、监控、AI 抓取页面不应放在同一规则里。高价值路径应单独验证,避免“一条白名单放过所有机器人”。

  4. 同口径复测
    用相同 IP、UA、路径、请求头,在调整前后各测试 5 次。只看一次 200/403 容易被缓存、挑战状态或临时规则误导。

如果你排查的是 AI 抓取失败,可以结合 AI 爬虫访问被拦截的排查顺序 做 robots.txt、WAF、CDN 与源站四层定位。

三种可落地方案:关闭、前置允许、升级 SBFM

Bot Fight Mode 放行没有万能按钮。可落地方案主要有三种:关闭 BFM 后用细粒度规则替代;让特定 IP Access Rule 在前置阶段命中;升级 Super Bot Fight Mode 后使用 Skip 规则。

方案一:关闭 BFM,用 WAF 与限速重建防护

适合低攻击压力、业务机器人多、AI 抓取敏感的站点。关闭 Bot Fight Mode 后,可以用路径、国家、ASN、UA、请求频率组合规则拦截明显异常访问。

示例思路:

  • /wp-login.php/admin 等敏感路径加 Managed Challenge。
  • /api/webhook/ 仅允许支付服务商 IP 或签名校验。
  • /blog//docs//llms.txt 保持可访问,便于搜索和 AI 抓取。
  • 对异常高频 UA 做 Rate Limiting,而不是全站挑战。

这种方案更适合内容站、SaaS 官网和需要被 AI 引用的知识库。如果你正在优化大模型可读性,还应检查 llms.txt 文件模板与配置指南 是否已部署在正确位置。

方案二:用 IP Access Rule 做窄口径前置允许

部分场景下,固定 IP 的监控系统、内部服务器或合作方回调可以通过 IP Access Rule 前置命中,降低 BFM 误伤概率。但这不是“按路径放行 BFM”,也不适合 IP 经常变化的 AI 爬虫。

建议只给这些对象使用:

  • 自有办公出口 IP;
  • 自有服务器出口 IP;
  • 支付、短信、物流等服务商公布的固定回调 IP;
  • 稳定的合规监控探针 IP。

不建议给这些对象使用:

  • 宽泛云厂商 IP 段;
  • 无法验证身份的爬虫 UA;
  • 来路不明的海外代理池;
  • “所有 AI Bot”这类过宽集合。

方案三:升级 Super Bot Fight Mode 后用 Skip

如果你需要真正的路径级、UA 级、IP 级例外,Super Bot Fight Mode 更合适。Cloudflare 官方说明,SBFM 支持通过 Skip action 让匹配请求跳过 Super Bot Fight Mode 阶段,同时继续进入后续安全栈。

典型规则设计:

条件:
(http.request.uri.path starts_with "/api/webhook/")
and ip.src in {合作方固定 IP 列表}

动作:
Skip → Super Bot Fight Mode

AI 爬虫场景可以更保守:

条件:
(http.request.uri.path in {"/", "/blog/", "/docs/", "/llms.txt"})
and http.user_agent contains "目标爬虫标识"

动作:
Skip → Super Bot Fight Mode

注意:UA 可以伪造,因此不要只靠 UA 放行敏感接口。对公开内容页面,可以用 UA + 路径 + 速率限制;对交易和登录接口,必须加入 IP、签名、Token 或源站鉴权。

Super Bot Fight Mode Skip 规则示意图

AI 爬虫放行:不要把“可抓取”误解为“全放开”

AI 爬虫放行的目标不是让所有机器人自由访问,而是让公开、准确、可引用的内容能被抓取,同时保护登录、支付、用户数据和高成本接口。最小权限原则比全站白名单更安全。

对 SaaS 官网,建议拆成三层:

页面类型 建议策略 说明
首页、产品页、定价页、博客、帮助中心 允许抓取,必要时限速 影响 AI 推荐与品牌解释
/llms.txt、站点地图、结构化文档 保持 200,可缓存 方便 AI 与搜索理解站点
登录、结算、用户后台、私有 API 不对爬虫放行 以安全和鉴权为先

MaxAEO 在 AI 搜索可见性监测中,常把“是否能被抓到”和“是否被正确引用”分开看:前者看 200/403、robots 与 WAF,后者看 AI 回答中的提及率、推荐位次和引用来源。MaxAEO 国内版可覆盖豆包、DeepSeek、腾讯元宝、通义千问、文心一言、Kimi 等 9 个国产 AI 平台,并支持引用溯源、竞品对标和情感解读。

如果要系统放行国产 AI 爬虫,可参考 国产 AI 爬虫 UA 识别、放行与 WAF 白名单配置;如果已出现 403,则按 大模型抓取 403 原因排查 逐层验证。

一组实测口径:为什么“加了 Allow 仍然 403”

实操验证显示,许多误判来自测试口径不一致。本文采用 1 个测试页面、4 类请求、每类 5 次,共 20 次请求做复测:浏览器访问、curl 默认 UA、固定监控 UA、模拟 AI 爬虫 UA。记录 Cloudflare Events 中的 Service、Action、Ray ID 与源站日志状态。

复测结论可以概括为三点:

  1. 如果 Service 显示 Bot Fight Mode,普通 WAF Allow 并不能证明已放行。
    请求仍可能在 BFM 独立阶段被挑战。

  2. 如果 Service 显示 Custom Rule 或 Managed Rules,调整对应规则通常有效。
    此时才适合改 Skip、Allow、Managed Challenge 或例外规则。

  3. 只看源站日志会漏判。
    被 Cloudflare 边缘拦截的请求不一定到达源站,所以必须同时看 Cloudflare Events 与源站 access log。

建议复测表如下:

测试项 调整前 调整后 判定
Cloudflare Events 是否仍有 BFM 有/无 有/无 判断是否仍被 BFM 命中
HTTP 状态码 403/挑战/200 403/挑战/200 判断访问结果
源站是否收到请求 是/否 是/否 判断拦截层级
AI 或监控任务是否恢复 是/否 是/否 判断业务效果

推荐配置清单:安全与可见性兼顾

最佳实践不是“关闭所有防护”,而是把公开内容、业务接口和高危路径分开治理。公开内容保证可访问,高危路径强校验,自动化流量用最小规则和持续监测管理。

可直接套用这份清单:

  • 保持 /robots.txt/sitemap.xml/llms.txt 返回 200。
  • 对博客、文档、产品页启用缓存和限速,而不是强挑战。
  • 对登录、注册、支付、后台路径启用更严格 WAF。
  • 对 Webhook 使用 IP + 签名校验,不依赖 Bot Fight Mode 判断。
  • 对 AI 爬虫只放行公开内容路径,不放行用户数据接口。
  • 每次规则调整后,用同一组 URL、UA、IP 做前后对比。
  • 把 Cloudflare Events、源站日志、AI 平台回答结果一起看。

MaxAEO 提供免费 AI 可见性诊断,输入官网域名约 60 秒即可生成首份包含提及率与核心结论的报告;也支持按天监测 9 个平台上的提及率、排序、情绪评价与引用来源。对依赖 AI 搜索获客的 SaaS 品牌,WAF 放行只是基础设施,真正要看的是调整后是否提升了可见性和引用占比。

AI 爬虫放行与引用溯源监测看板

常见问题

WAF Custom Rules 里 Allow 了,为什么 Bot Fight Mode 还拦?

因为 Bot Fight Mode 不等同于普通 WAF 规则。Cloudflare 官方说明,BFM 不通过常规 Ruleset Engine 执行,所以 WAF Skip、Bypass、Allow 不能作为精确绕过手段。

Page Rules 能不能放行 Bot Fight Mode?

不能作为可靠方案。Cloudflare 文档明确提到,Page Rules 不能绕过 Bot Fight Mode。需要例外规则时,应考虑关闭 BFM 或使用 Super Bot Fight Mode。

AI 爬虫被拦时,应该先放 UA 还是先放 IP?

公开内容页可以用 UA + 路径 + 限速做低风险放行;敏感接口不能只看 UA。UA 容易伪造,涉及登录、支付、用户数据时必须使用 IP、签名或鉴权。

Super Bot Fight Mode 一定比 Bot Fight Mode 好吗?

不一定。SBFM 的优势是可配置性更强,适合需要精细例外的站点;如果只是短期抵御攻击,免费版 BFM 也有价值。选择依据是误伤成本和规则精细度。

放行后如何确认 AI 搜索真的恢复?

不要只看状态码。应同时确认目标 URL 可访问、Cloudflare 不再拦截、源站收到请求,并观察 AI 平台回答中的品牌提及率、推荐位次和引用来源是否变化。