直接开启 Bot Fight Mode 是应对突发恶意爬虫最快的方法,适合已经观察到异常流量且不影响正常用户交互的场景。
先说结论:这是一个开关型功能,开启后会自动对可疑请求发起挑战,但需留意对自动化业务的误伤。
- 适合:已接入 Cloudflare 解析且需要快速拦截扫描器的域名
- 先准备:确认 Cloudflare 套餐权限支持该功能
- 验收:开启后观察 Security Events 日志是否有拦截记录
快速处理思路
该功能主要在 Cloudflare Dashboard 界面操作,无需命令行。登录控制台后,进入目标域名的 Security 页面,找到 Bots 选项卡,直接切换 Bot Fight Mode 开关即可。开启后建议先观察几小时,确认没有误拦正常用户后再长期开启。
套餐功能差异说明
不同套餐对 Bot 防御的支持力度有所不同,配置前需明确当前权限:
- Free 套餐:支持基础 Bot Fight Mode 功能,可拦截已知自动化脚本。
- Pro 及以上套餐:提供更高级的指纹识别和自动化规则(Super Bot Fight Mode),能更精准区分真人和高级爬虫。
- 注意:具体可用功能以控制台实际显示为准,免费用户无需担心无法使用基础防御。
分步处理
- 登录 Cloudflare Dashboard,选择需要保护的域名。
- 在左侧菜单栏点击
Security,然后选择Bots。 - 找到
Bot Fight Mode选项,将开关拨至On状态。 - 系统可能会提示确认,点击确认开启。
- 回滚提醒:如果发现正常用户无法访问,随时回到同一位置将开关拨回
Off即可立即失效。
怎么验证是否生效
开启后,进入 Security > Events 页面。在过滤器中选择 Action 为 Challenge 或 Block,并查看 Source 是否包含 Bot Fight Mode 相关标识。如果有新增的拦截记录,说明功能正在工作。
挑战页面表现:使用无痕模式或爬虫工具访问网站,若被拦截,通常会看到 Cloudflare 标准的 "Checking your browser before accessing..." 页面,停留数秒后自动跳转。如果爬虫无法执行 JS,则会一直停留或返回错误。
配置 API 例外规则
盲目开启可能导致业务 API 中断,若发现合法 API 调用被挑战或阻断,需配置例外规则:
- 进入
Security>WAF>Custom rules。 - 点击
Create rule,命名规则如API Bypass Bot Challenge。 - 表达式配置:设置
Field为URI Path,Operator为contains,Value填写你的 API 路径(如/api/v1/)。 - 行动配置:在
Choose action中选择Set security level,并将级别调整为Low或Essentially Off。 - 点击
Deploy保存。
此规则会降低指定路径的安全挑战频率,确保 API 客户端不受 Bot Fight Mode 的 JS 挑战影响。
常见坑
- API 业务受影响:如果你的网站提供公开 API 且客户端没有浏览器环境,开启后可能导致合法 API 调用失败。务必按上述步骤配置 WAF 例外规则。
- SEO 爬虫误伤:虽然 Cloudflare 会放行知名搜索引擎爬虫,但小型搜索引擎或采集工具可能被误拦,影响收录。建议在 WAF 中为已知良性爬虫 UA 设置 bypass。
- 移动端 SDK 兼容:部分旧版本移动端 SDK 可能无法通过 JS 挑战,需结合 WAF 规则针对特定 User-Agent 放行。
参考来源
- Cloudflare 官方文档 - Bot Management: https://developers.cloudflare.com/bots/
- Cloudflare 官方文档 - Bot Fight Mode: https://developers.cloudflare.com/bots/bot-fight-mode/