跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PHP

Cloudflare WAF 防护 WordPress 方案:托管质询与规则组合应对 CC 攻击

介绍通过 Cloudflare WAF 配置防护 WordPress 遭受 CC 及机器人攻击的方案。核心步骤包括开启代理、启用 Bot 防护、设置白名单、对已知自动程序执行托管质询、阻止 xmlrpc.php、对 wp-login 和 admin-ajax 进行挑战或限速。该方案无需修改服务器配置,利用边缘节点拦截恶意流量,有效降低源站负载,并通过事件数据持续优化规则。

CodeArtist发布于 2026/4/6更新于 2026/9/1075 浏览

Cloudflare 通用防护目标(只用 Cloudflare,适配所有服务器)

该方案只在 Cloudflare 侧完成,不依赖服务器类型、面板或 root 权限,目标是:

  1. 不长期依赖 Under Attack(仅作为应急开关)
  2. 通过 WAF 规则把高频机器人/CC 流量挡在边缘
  3. 重点保护 WordPress 高风险入口(wp-login、admin-ajax、xmlrpc)
  4. 通过事件数据持续迭代规则,保持长期稳定

一、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
匹配条件:http.request.uri.path eq "/wp-admin/admin-ajax.php"
操作:托管质询(Managed Challenge)

用途:大量机器人会刷 admin-ajax 触发 PHP/数据库高负载,用挑战显著减压。
(不建议直接 Block,避免误伤前台依赖 admin-ajax 的功能。)


规则 6:阻止指定恶意 User-Agent(模板规则,持续扩展)

名称:Block Bad User-Agents
匹配条件:把已确认的恶意 UA 逐条加入(OR 组合)
操作:Block

用途:对明确恶意工具/脚本直接封禁,减少重复攻击成本。


三、Rate Limiting(如果可用:效果会更稳)

如果套餐/控制台支持 Rate Limiting(限速),建议对以下路径加'每 IP 阈值':

  • /wp-login.php(POST):例如 10 次/分钟/IP → Challenge 或 Block
  • /wp-admin/admin-ajax.php:例如 60 次/分钟/IP → Challenge
  • 搜索参数(如 ?s=):例如 30 次/分钟/IP → Challenge
  • /wp-json/(如不依赖 REST):例如 60 次/分钟/IP → Challenge

建议策略:先 Challenge 观察是否误伤,再逐步收紧到 Block。


四、Under Attack 模式的正确使用方式(应急按钮)

  • 日常:保持 Under Attack 关闭
  • 攻击峰值:临时开启 Under Attack 30–120 分钟救火
  • 峰值过去:关闭 Under Attack,继续依赖上述精细规则长期运行

五、如何用 Cloudflare Events 持续迭代(只靠 Cloudflare 即可闭环)

该方案不需要服务器日志,长期维护只看 Cloudflare 侧数据即可:

  1. 观察命中最多的规则(确认主要压力来源)
  2. 看 Top 目标路径(URL)是否集中在 wp-login/admin-ajax/xmlrpc 或其他路径
  3. 看 Top 国家/ASN/UA(必要时新增更精确的挑战/阻止规则)
  4. 新出现的恶意 UA 进入'UA 黑名单'规则
  5. 新出现的高频路径进入'Managed Challenge + Rate Limit'组合

六、最终可复制的'规则清单'(直接用)

顺序名称匹配条件操作
1白名单可信 IPip.src in {trusted IPs}Allow / Skip
2已知自动程序cf.client.bot eq trueManaged Challenge
3禁用 XML-RPCpath eq /xmlrpc.phpBlock
4wp-login 防爆破path eq /wp-login.php AND POSTManaged Challenge
5admin-ajax 防刷path eq /wp-admin/admin-ajax.phpManaged Challenge
6恶意 UA 黑名单http.user_agent in {...}Block
7限速(可选)登录/ajax/搜索/APIChallenge/Block

FAQ(只给可执行结论)

1)为什么'已知自动程序=true'能显著降低负载?

因为大量压力来源本质是自动化访问,挑战后会被筛掉或降频,从而减少回源请求与动态计算压力。

2)只做 wp-login 和 admin-ajax 够吗?

通常不够。建议至少加上:已知自动程序挑战 + xmlrpc 阻止,必要时再上限速。

3)担心误伤怎么办?

先做三件事:

  • 加白名单(自己 IP)
  • wp-login 只挑战 POST
  • admin-ajax 用 Challenge 不用 Block
    然后通过 Events 观察真实影响,再逐步收紧策略。

结论

该解决方案完全在 Cloudflare 完成,适用于所有服务器环境:
通过'白名单 → 已知自动程序挑战 → xmlrpc 阻止 → wp-login/admin-ajax 保护 → UA 黑名单 →(可选)限速 → Under Attack 应急'这一套组合,可稳定解决网站被刷导致的 CPU/内存 100%、关闭 Under Attack 立刻变慢的问题,并且可通过 Cloudflare Events 持续迭代长期有效。

目录

  1. Cloudflare 通用防护目标(只用 Cloudflare,适配所有服务器)
  2. 一、Cloudflare 基础前置(必须)
  3. 1. DNS 全部走代理(橙云)
  4. 2. 打开 Bot 相关防护
  5. 二、WAF 规则最佳顺序
  6. 规则 1:白名单(管理员/公司网络/可信 IP)
  7. 规则 2:自动程序(已知自动程序 = true)托管质询
  8. 规则 3:直接阻止 XML-RPC(强烈推荐)
  9. 规则 4:wp-login 只挑战 POST(对正常访问影响更小)
  10. 规则 5:admin-ajax 托管质询(防刷防拖死)
  11. 规则 6:阻止指定恶意 User-Agent(模板规则,持续扩展)
  12. 三、Rate Limiting(如果可用:效果会更稳)
  13. 四、Under Attack 模式的正确使用方式(应急按钮)
  14. 五、如何用 Cloudflare Events 持续迭代(只靠 Cloudflare 即可闭环)
  15. 六、最终可复制的“规则清单”(直接用)
  16. FAQ(只给可执行结论)
  17. 1)为什么“已知自动程序=true”能显著降低负载?
  18. 2)只做 wp-login 和 admin-ajax 够吗?
  19. 3)担心误伤怎么办?
  20. 结论

更多推荐文章

查看全部
  • ChatGPT 插件生态爆发:自动写书玩法与插件知识库构建方法
  • Web Worker:前端多线程开发的隐形引擎
  • WindowsCleaner v5.0:基于 Python Tkinter 的磁盘清理与系统优化工具
  • OpenClaw 本地部署与飞书机器人接入指南
  • 近端策略优化算法 (PPO) 详解与 PyTorch 实现
  • Java 反射与方法句柄:动态编程深度解析
  • Moon VR Video Player 使用指南:支持 8K/12K 多音轨及外挂字幕
  • 融合大模型与遥感技术:人工智能基础模型综述
  • 低代码结合大模型:中小企业半天构建专属 SaaS 应用路径
  • C/C++ 错误信息捕获与处理实战指南
  • DeepSeek-R1 大模型基于 MS-Swift 框架部署、推理与微调实践
  • 《Agent Runtime 工程化》第四章 工具系统设计
  • Windows 环境 Git 安装与配置指南
  • 使用腾讯云 HAI 和 DeepSeek 搭建响应式个人网页
  • SpringBoot+Vue 雪具销售系统设计与实现
  • Visual C++运行库完整安装指南:解决缺少 DLL 文件问题
  • Spatial Joy 2025 全球 AR&AI 赛事:开发者资源、玩法与避坑攻略
  • LLaMA-Factory 微调 DeepSeek-R1 模型实战指南
  • C++ 实现域名与 IP 地址相互解析示例
  • Python 人工智能入门指南与学习路线

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online