跳转到内容
搜索文档

质询恶意机器人

最后更新 查看 MarkdownAgent 设置

Cloudflare 的 Bot Management 功能会对请求来自机器人的可能性进行评分。

机器人设置

在创建用于机器人防护的自定义规则之前,请在 Security Settings 页面的 Bot traffic(机器人流量) 下查看相关设置。内置功能会随新的机器人签名自动更新,不计入自定义规则数量限制,且更易于管理。

用例 机器人设置
拦截 AI 爬虫(GPTBot、ClaudeBot 等) Block AI bots(阻止 AI 机器人)
拦截明确自动化流量(bot score 为 1) Definitely automated(确定为自动化)
质询可能自动化流量(bot score 为 2-29) Likely automated(可能为自动化)
允许已验证机器人(Googlebot、Bingbot 等) Verified bots(已验证机器人)
将机器人防护扩展到静态资源 Static resource protection(静态资源防护)
允许 WordPress 回环请求 Optimize for WordPress(针对 WordPress 优化)

当您需要按路径进行差异化防护(对 /api//login/ 采用不同处理)、自定义评分阈值(例如低于 20 而非 30)、将 bot score 与其他字段组合的条件逻辑,或内置设置中不可用的自定义操作时,自定义规则仍然很有价值。

Bot score 的范围为 1 到 99。分数较低表示请求来自脚本、API 服务或自动化代理。分数较高表示请求由人类通过标准桌面或移动 Web 浏览器发出。

这些示例使用:

建议规则

为获得最佳效果:

  • 使用 Bot Analytics 在应用规则前了解您的流量。
  • 从小范围开始,逐步提高机器人阈值。

您的规则也可能因 站点性质 以及对误报的容忍度而有所不同。

常规防护

以下三条自定义规则可提供针对恶意机器人的基线防护:

规则 1:跳过已验证机器人

  • 表达式(cf.bot_management.verified_bot)
  • 操作跳过:
    • 所有剩余自定义规则
  • 已知良性机器人(Googlebot、Bingbot、监控服务)会绕过所有自定义规则。请参阅已验证机器人列表Radar 机器人目录

规则 2:封锁明确的自动化流量

  • 表达式(cf.bot_management.score eq 1)
  • 操作封锁
  • 评分为 1 的流量被明确判定为自动化流量。封锁此类流量误报风险极低。

规则 3:质询可能的自动化流量

  • 表达式(cf.bot_management.score gt 1 and cf.bot_management.score lt 30)
  • 操作托管质询
  • 评分 2-29 表示可能存在自动化行为。质询可让合法用户通过,同时阻止机器人。

针对浏览器、API 和移动流量的特定防护

保护浏览器端点

当请求明确为自动化(分数为 1)或可能为自动化(分数 2 到 29),且在已知良好机器人列表中时,Cloudflare 会拦截该请求。

  • 表达式(cf.bot_management.score lt 30 and not cf.bot_management.verified_bot)
  • 操作Block

豁免 API 流量

由于 Bot Management 会检测自动化用户,您需要显式允许良好的自动化流量——包括您的 API 和合作伙伴 API。

此示例提供与仅浏览器规则相同的防护,但允许访问您的 API 的自动化流量。

  • 表达式(cf.bot_management.score lt 30 and not cf.bot_management.verified_bot and not starts_with(http.request.uri.path, "/api"))
  • 操作Block

针对移动流量进行调整

由于 Bot Management 对移动流量可能更敏感,您可能需要添加额外逻辑,以避免拦截合法请求。

如果您处理的是自己的移动应用请求,可以基于其特定的 JA3 fingerprint 允许该流量。

  • 表达式(cf.bot_management.ja3_hash eq "df669e7ea913f1ac0c0cce9a201a2ec1")
  • 操作Skip:
    • All remaining custom rules

否则,您可以为移动流量设置更低的阈值。以下规则会拦截明确自动化的移动流量,并对可能自动化的流量发起质询。

规则 1:

  • 表达式(cf.bot_management.score lt 2 and http.user_agent contains "App_Name 2.0")
  • 操作Block

规则 2:

  • 表达式(cf.bot_management.score lt 30 and http.user_agent contains "App_Name 2.0")
  • 操作Managed Challenge

组合不同规则

如果您的域名同时处理移动、浏览器和 API 流量,应按以下顺序排列这些示例规则:

静态资源防护

当您使用 cf.bot_management.score 字段创建自定义规则时,静态资源默认会受到保护。

要排除静态资源,请在规则表达式中包含 not (cf.bot_management.static_resource)。详情请参阅 静态资源防护

其他注意事项

在此基础上,您可以根据特定请求路径(/login/signup)、常见流量模式或许多其他特征来自定义规则。

请务必查看 Bot AnalyticsSecurity Events,检查规则是否需要进一步调优。


其他资源

这篇文档对您有帮助吗?