Cloudflare 免费版找不到 IP Access Rules?这样放行 Webhook
Cloudflare 免费版开启 Bot Fight Mode 后,支付、通知等自动化 Webhook 请求可能被误判,并触发 Cloudflare 的托管质询(Managed Challenge)。
一、问题原因
在 Cloudflare 的安全性分析中,通常可以看到:
服务:Bot Fight 模式采取的措施:托管质询
由于 Webhook 是服务器直接发起的自动化请求,无法像普通浏览器一样执行 JavaScript、保存 Cookie 并完成质询,因此请求会被 Cloudflare 拦在源站之前,最终导致回调失败。服务商一侧通常会将其记录为 HTTP 403。
此时,即使添加 WAF 自定义规则,并将操作设置为 Skip,仍然无法绕过免费版 Bot Fight Mode。
原因很简单:免费版 Bot Fight Mode 不在 Ruleset Engine 中运行,不能通过 WAF 自定义规则跳过。
二、使用 IP Access Rules 放行
找到创建入口
新版控制台会隐藏 IP Access Rules,直到当前账户至少创建过一条规则。这并不代表免费版取消了该功能;IP Access Rules 仍对所有套餐开放。
如果 Webhook 服务商提供固定出口 IP,可以直接打开下面的创建页面:
创建放行规则
填写时建议:
IP / IP range:填写服务商公布的出口 IP 或网段。Action:选择Allow。Zone:只选择当前网站,避免影响账户中的其他域名。Note:标明服务名称,例如Payment Webhook。
创建第一条规则后,IP Access Rules 会重新出现在安全规则页面。只要请求的来源 IP 命中该规则,Bot Fight Mode 就不会再触发。
三、风险与替代方案
Allow 规则的风险
Allow 不只是放行 Bot Fight Mode,还会绕过多项 Cloudflare 安全检查。因此:
- 只添加可信服务商的固定 IP,尽量不要放行过大的网段。
- 不要使用来源不明、可能变化的 IP。
- 定期核对服务商的出口 IP 列表。
没有固定 IP 时
如果对方没有固定 IP,IP 白名单就不适用。此时可以考虑关闭 Bot Fight Mode、使用独立的回调子域名,并将该子域名设置为 DNS only,让回调请求不经过 Cloudflare 代理。或者升级到支持精细 Skip 规则的 Super Bot Fight Mode。
如果将回调子域名设置为 DNS only,源站 IP 会直接暴露,并且该子域名不再受到 Cloudflare WAF、Bot Fight Mode 等代理层安全功能的保护。此时需要在源站自行配置 HTTPS、防火墙、访问控制和 Webhook 签名验证。
综合来看,如果服务商提供固定出口 IP,通过 IP Access Rule 放行通常是 Cloudflare 免费版中最简单、最稳定的处理方式。
四、参考资料
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

