项目地址:https://github.com/shzstone/Site-Behavior-Auditor
在经营 WordPress 站点的过程中,你是否被以下问题搞得焦头烂额:
- 高级爬虫绕过 CF:开启了 Cloudflare 质询,采集器依然能伪装成浏览器把你的文章秒抓走?
- 安全插件拖慢速度:装了重型安全插件,结果数据库查询变慢,服务器负载飙升?
- 垃圾注册与邮件丢失:每天成百上千的机器注册,且系统自带发信功能极度不稳定?
为了追求毫秒级响应、零数据库负载以及极致的防御体验,我开发了 SBA (Site Behavior Auditor) 综合安全套件。它不仅是防火墙,更是站点的“黑匣子”和“边境巡逻队”。现将这套自用方案分享出来,供追求高性能运维的朋友参考。
一、 核心架构突破:为极致性能而生
SBA 的设计初衷是在不牺牲站点加载速度(TTFB)的前提下,实现深度的安全审计:
- xdb 内存级 IP 查询 (0.0x ms)
放弃传统的数据库存储 IP 库方案,集成 ip2region xdb 引擎。11MB 库文件全量加载至服务器内存,单次地理位置解析仅需 0.0x 毫秒。由于不占 SQL 资源,解析过程对页面响应时间的影响几乎可以忽略不计。 - 彻底“去 Session 化”
抛弃 PHP 原生 session_start(),状态存储全量改用 WordPress Transient API。这意味着即使服务器开启了 Redis/Memcached 对象缓存,SBA 的所有防御令牌和状态依然能 100% 稳定运行,且不会产生磁盘 Session 文件堆积。 - 动态分片上传技术
考虑到 11MB+ 的 .xdb 库文件在弱网环境下上传易中断,插件内置了分片上传 + 断点续传组件,确保核心数据能稳定同步至服务器。
二、 三层主动防御系统:让采集器“有来无回”
针对那些能够模拟浏览器的“高级爬虫”,SBA 建立了三道动态防线:
- 阶梯式频率限制 (Tiered Rate Limit)
系统会自动识别路径:针对普通文章页保持宽松,但针对 feed、rest_route、?m= 等爬虫最爱的“采集点”,自动实行默认阈值 1/3 的严苛频率限制。 - Cookie 身份指纹校验
通过加密指纹识别真实浏览器会话。对那些无法维持 Cookie 状态的恶意采集脚本进行强力降速,精准区分真人访客与无状态脚本。 - 诱饵陷阱 (Honeypot Trap)
在页面底部布设普通用户不可见的动态隐藏链接。解析 HTML 源码的采集机器人一旦触碰,系统即刻触发“死刑”逻辑,瞬间封禁该 IP 24 小时。
三、 功能模块全解析
| 模块 | 核心能力 |
| 高性能审计 | 实时轨迹记录、xdb 本地解析、30天趋势图表、每日数据自动清理(防止表膨胀)。 |
| iOS 风格登录盒 | 全 AJAX 驱动,支持通过简码 [sba_login_box] 调用。包含 24 小时强制邮件激活、防暴力破解机制。 |
| SMTP 邮件中心 | 接管 WordPress 默认发信逻辑,支持 TLS/SSL 加密,确保验证邮件 100%送达。 |
| Gate 钥匙保护 | 隐匿 wp-login.php 入口。必须通过 gate=钥匙 参数才能开启登录页,支持会话令牌锁定。 |
四、 部署与运维建议
1. 初始化步骤
- 上传库文件:启用插件后,前往「防御设置」底部,通过上传组件同步 ip2region.xdb。
- 配置环境:为确保分片上传丝滑且内存查询稳定,建议将 PHP 的 upload_max_filesize 和 memory_limit 设为 512M。
- 启用 SMTP:由于系统强制开启注册激活,请务必先配置好发信服务器并测试成功。
2. 前端简码调用
- 登录面板:在任意页面或文章中插入 [sba_login_box] 即可调用。
- 统计卡片:在侧边栏或页脚插入 [sba_stats],实时展示在线人数、今日 UV 及 PV。
五、 结语
SBA 综合安全套件不是为了成为另一个臃肿的插件,而是为那些对性能有洁癖、对安全有追求的站长提供一个极致的本地化解决方案。它不依赖任何外部 API,不泄露访客隐私,是站点最稳固的后台守护者。
希望这个方案能为您的站点运维带来便利。
分类: WordPress / 安全 / 运维
标签: #WordPress安全 #反采集 #ip2region #SBA套件 #高性能插件 #NAS运维


