Cloudflare 通用防护目标(只用 Cloudflare,适配所有服务器)
该方案只在 Cloudflare 侧完成,不依赖服务器类型、面板或 root 权限,目标是:
- 不长期依赖 Under Attack(仅作为应急开关)
- 通过 WAF 规则把高频机器人/CC 流量挡在边缘
- 重点保护 WordPress 高风险入口(wp-login、admin-ajax、xmlrpc)
- 通过事件数据持续迭代规则,保持长期稳定
一、Cloudflare 基础前置(必须)
1. DNS 全部走代理(橙云)
- 网站主域名、www 以及对外访问的记录,全部开启 Proxied(橙云)
- 不保留任何灰云直连源站记录,避免绕过 Cloudflare 直打源站
2. 打开 Bot 相关防护
- Bot Fight Mode / Bot 防护相关开关开启
- 安全级别不建议设置过低
二、WAF 规则最佳顺序
以下规则建议按顺序创建(从'减少误伤'到'精准拦截'):
规则的核心思想是:先放行可信流量 → 再统一拦截机器人 → 再保护高风险入口 → 最后黑名单补刀。
规则 1:白名单(管理员/公司网络/可信 IP)
名称:Whitelist Trusted IPs
匹配条件:管理员公网 IP(或固定办公网络 IP 段)
操作:Allow / Skip(跳过安全检查)
用途:避免管理员登录后台、发布内容时被反复质询,减少误伤。
规则 2:自动程序(已知自动程序 = true)托管质询
名称:Known Bots Challenge
匹配条件:cf.client.bot eq true
操作:托管质询(Managed Challenge)
用途:对 Cloudflare 能识别出的自动化流量进行挑战,快速削减机器人请求带来的压力。
说明:这是'救火效果很强'的通用策略。后续如果想更偏 SEO,可把此规则调整为 Allow/Skip,并把挑战重点放到高风险路径与限速策略上(可选优化,不是必需)。
规则 3:直接阻止 XML-RPC(强烈推荐)
名称:Block XML-RPC
匹配条件:http.request.uri.path eq "/xmlrpc.php"
操作:Block
用途:xmlrpc.php 是常见被刷入口之一,很多站点并不需要它,直接阻止最省心。
规则 4:wp-login 只挑战 POST(对正常访问影响更小)
名称:wp-login POST Managed Challenge
匹配条件:(http.request.uri.path eq "/wp-login.php" and http.request.method eq "POST")
操作:托管质询(Managed Challenge)
用途:只对登录提交动作挑战,既能挡暴力破解/脚本登录,又尽量不影响正常访问。
规则 5:admin-ajax 托管质询(防刷防拖死)
:admin-ajax Managed Challenge : :托管质询(Managed Challenge)

