源码系统概览
文章正文
这套 WordPress 防护插件源码主打防 CC 攻击、DDoS 防护和恶意爬虫拦截。
它来自 123ONE 的「智能高防」产品线,适合想给站点加一层访问频率限制和攻击防御的站长。
源码同时提供 PHP 内置限流引擎和 Nginx Lua 高性能方案,没有 OpenResty 环境也能直接跑起来。
源码简介
123ONE智能高防(one-defender)是一款开源的 WordPress 网站防护插件,版本 2.0.14。
它通过访问频率限制、UA 黑名单、IP 黑白名单和动态分级限流,拦截 CC 攻击、DDoS 和恶意爬虫。
插件包含 PHP 原生限流引擎(全环境可用)与可选的 Nginx Lua 引擎(高性能模式),并提供后台拦截日志、攻击告警、自动封禁与 CSV 导出。
整体为防御视角的安全工具,代码逻辑清晰,适合站长防护与安全防护学习参考。
适用场景
- 个人博客或企业官网遭遇 CC 攻击、刷接口、恶意爬虫时做访问限流。
- 下载站、资源站等高并发场景用动态分级限流保护服务器。
- 安全学习者研究 WordPress 防护插件的限流与防火墙实现。
功能亮点
- 双引擎防护:PHP 内置限流引擎(优先级 -9999,无需 Nginx 即可工作)加 Nginx Lua 高性能引擎,自动注入 lua_shared_dict。
- 智能动态限流:支持 5 级阈值(100/80/50/30/10)与动态升级/恢复机制,攻击时自动收紧、平稳后自动放松。
- UA 与 IP 防护:UA 子串/正则黑名单、空 UA 拦截;IP 精确与 CIDR 网段白名单优先放行,防误封。
- 自动封禁与告警:按 503 累计次数自动封禁异常 IP(默认关闭防误封),后台攻击量突增顶部告警。
- 运维与统计:拦截日志、CSV 导出、站点信息可配置、环境一键自检修复、自托管远程更新。
技术架构与部署指南
| 维度 | 本套源码 | 同类通用方案 |
|---|---|---|
| 技术栈 | 运行环境:PHP 7.0+ 与 WordPress 5.0+(实测兼容至 6.7)。 | 依具体方案选型,需自行搭建与维护 |
| 部署方式 | 以 WordPress 插件方式安装:将 one-defender 目录上传至 wp-content/plugins,后 | 多托管于第三方平台或订阅云服务 |
| 功能侧重 | 双引擎防护:PHP 内置限流引擎(优先级 -9999,无需 Nginx 即可工作)加 Nginx Lua 高性能引擎,自 | 功能通用,定制深度有限 |
| 数据归属 | 数据自持,部署在自有服务器,不出站 | 数据通常留存于服务商侧 |
| 成本模式 | 获取后自主部署,无持续授权费用 | 通常按订阅或调用量计费 |
技术栈与运行环境
运行环境:PHP 7.0+ 与 WordPress 5.0+(实测兼容至 6.7)。
高性能模式需 Nginx + OpenResty/LuaJIT(ngx_lua 模块)与 lua_shared_dict 支持。
核心实现:PHP 限流引擎(Transient 缓存计数)、Nginx Lua 动态限流脚本(dynamic_limit.lua)、MySQL 事件/封禁表。
辅助脚本:env-fix.sh(环境自检修复)、fix-123one-logs.php(123ONE 系列日志修复)、updater.php(自托管更新检测)。
安装与部署提示
以 WordPress 插件方式安装:将 one-defender 目录上传至 wp-content/plugins,后台启用即可。
启用的默认配置已开启 PHP 限流引擎;如需高性能模式,需在 Nginx + OpenResty 环境点「部署」自动注入 Lua 配置。
建议先关闭自动封禁(auto_ban),观察拦截日志无误封后再开启。
后台提供环境自检(fixenv)、权限修复(fixperms)、Lua 字典修复等一键操作。
截图与演示说明
- 后台设置页(options-general.php?page=123one-defender):含防护开关、限流窗口、分级阈值、UA 黑名单、IP 白名单、自动封禁等配置项。
- 拦截统计页(tab=stats):展示拦截事件、444 屏蔽记录,支持 CSV 导出。
- 部署检查页(tab=setup):Nginx 环境预检清单与一键部署。
- 攻击告警:拦截量突增时在后台顶部弹出提示。
常见问题
- 没有 Nginx/Lua 环境能用吗?可以,PHP 内置限流引擎不依赖 Nginx,普通虚拟主机也能启用基础防护。
- 会自动误封正常访客吗?插件预设 IP 白名单与 CIDR 放行,且自动封禁默认关闭,建议先观察日志再开启。
安全风险提示
特别提示:本源码未检测安全风险文件,下载后请务必进行安全审计,删除恶意代码后再部署使用!
补充说明(透明告知):插件默认开启运行统计上报(report_stats,向 123one.online 发送站点域名与版本,非阻塞),如不需要可在设置中关闭。
更新检测模块(updater.php)使用自托管地址且关闭了 SSL 证书校验(sslverify=false),正式上线建议改为校验证书或私有更新源。
shell_exec 仅用于 Nginx 配置管理(nginx -t / nginx -s reload)与文件权限修复,命令均为固定字符串或服务器探测路径,未传入用户输入。
下载说明
本源码仅供学习、研究与个人站点防护参考,请于下载后 24 小时内删除,勿用于商业转售或非法用途。
部署前请修改默认配置、关闭不必要的遥测,并自行评估与目标站点的兼容性。
正式商用请确认已获得相应授权并遵守相关安全合规要求。