在日益复杂的网络环境中,WordPress站点始终是攻击者的重点目标。Xenice WAF 不只是一个安全插件,更是一套专为WordPress设计的主动式Web应用防火墙。它基于PHP原生实现,深度集成SQLite数据库(无需额外扩展),以极小性能开销,为您提供IP黑白名单、URI/参数过滤、CC攻击防护、JS挑战等全方位安全能力。
为什么选择 Xenice WAF?
- 与WordPress深度集成:不同于通用WAF方案,Xenice WAF完全基于WordPress钩子机制(Hook)构建,在
init阶段静默启动,不干扰核心流程,与现有插件生态无缝共存,真正实现“即插即用”。
- 主动防御,不止于规则:不仅提供IP/URI/参数等多维度正则过滤,更内置JS Challenge人机验证与CC智能频率限制,从被动拦截升级为主动挑战,有效识别并阻断自动化攻击与恶意爬虫。
- 轻量化架构,高性能保障:基于PHP原生实现,不依赖额外服务器模块(如Nginx Lua或Apache ModSecurity),结合SQLite本地数据库,以极低内存和CPU开销支撑日均百万级请求,适合从中小站点到高并发业务场景。
- 数据闭环,合规易追溯:所有审计日志、频率统计均持久化存储于
/wp-content/uploads/xwaf/.private/目录,支持自动过期清理,无需外部日志服务,满足数据安全与追溯分析需求。
📦 核心能力一览
| 功能模块 | 说明 |
|---|
| IP黑白名单 | 支持IPv4/IPv6(通过IPChecker类),可精确或通配匹配 |
| URI黑白名单 | 支持正则表达式匹配,灵活拦截或放行特定路径 |
| GET/POST参数过滤 | 分别对参数值(value)和参数名(key)进行正则匹配阻断 |
| User-Agent过滤 | 可拦截恶意爬虫或异常UA,同时支持主流搜索引擎白名单放行 |
| CC攻击防护(频率限制) | 基于IP+URI的请求频率限制,自动封禁高频请求者 |
| JS Challenge(人机验证) | 可选启用JavaScript挑战,有效拦截非浏览器自动化攻击 |
| 审计日志 | 完整记录访问与拦截日志,支持SQLite存储,便于追溯分析 |
| 授权管理 | 内置License校验,支持激活/续费,保障商业合规 |
架构优势
- 极简启动:
xwaf类在init阶段加载,不干扰WordPress核心流程。
- 钩子扩展:提供
xwaf_do_action('xwaf_start')自定义动作钩子,方便二次开发。
- 多维度匹配:所有过滤规则均支持正则表达式(
preg_match),灵活适配复杂场景。
- SQLite持久化:日志与频率统计基于SQLite,无需额外服务,数据安全可靠。
Q1:Xenice WAF 会影响网站速度吗?
A:不会。插件仅在请求初期执行轻量级正则匹配和SQLite查询操作。SQLite采用事务写入优化,经压测,开启全部规则后对TTC(Time-To-Complete)影响小于8ms。
Q2:SQLite 能支撑高并发吗?
A:完全可以。SQLite采用WAL(Write-Ahead Logging)模式,支持并发读和单写,适合日均百万级PV的WordPress站点。插件已优化查询语句,使用索引加速,性能表现优异。
Q3:如何避免误拦正常用户?
A:建议优先启用白名单(IP/URI),并开启搜索引擎蜘蛛放行。所有规则支持正则,可精细配置。若发生误拦,可通过日志快速定位并调整规则。
Q4:数据库文件安全吗?
A:数据库存储在/wp-content/uploads/xwaf/目录,插件自动创建.htaccess文件禁止直接访问,确保数据安全。
Q5:是否支持多站点(WordPress Multisite)?
A:支持。插件基于全局配置,各子站点可共用一套规则,也可通过$xwaf_config按站点区分。
Q6:JS Challenge 会阻止搜索引擎抓取吗?
A:只要在设置中启用「排除搜索引擎蜘蛛」(exclude_search_spiders),Googlebot、Bingbot、Baiduspider 等主流搜索引擎将完全绕过JS Challenge,不会对SEO产生任何负面影响。
Q7:授权失效后插件会停止工作吗?
A:已激活的WAF规则会继续运行,但后台管理功能(设置、日志)将被锁定,直至重新激活授权。
安装与激活
-
登录WordPress管理后台(通常通过 域名/wp-admin 访问)。
-
导航至 插件 > 安装插件,点击 上传插件。
-
选择已下载的插件压缩包,点击 安装插件。
-
安装完成后,点击 启用。
授权提示:若未激活授权,后台菜单仅显示「License」页面。输入有效授权码后即可解锁全部功能。
后台配置详解
Xenice WAF 插件已经内置了防护规则,插件激活即可生效,用户也可以自定义防护规则,配置入口位于 「WAF → Settings」,共包含7个功能标签页,覆盖全方位安全策略:
1. General(通用设置)
2. IP Settings(IP设置)
3. URI Settings(URI设置)
4. Filter Rules(过滤规则)——核心配置区
提供针对请求不同维度的细粒度过滤能力:
使用建议:
5. Block Settings(频率限制与封禁)
6. JS Challenge(JavaScript挑战)
启用后,首次访问的请求会返回一个JavaScript计算挑战,只有浏览器正确执行并携带验证Cookie后才能正常访问。
-
有效拦截:
-
自动化扫描工具
-
无头浏览器脚本
-
非浏览器发起的恶意请求
-
支持配置:
7. Log Settings(日志设置)
加强防护
将以下代码添加至 wp-config.php 文件顶部,可使 WAF 提前生效,减少后续逻辑对系统资源的无效占用。
require __DIR__ . '/wp-content/plugins/xenice-waf/xwaf/index.php';
自定义扩展
开发者可通过钩子 xwaf_do_action('xwaf_start') 在WAF执行完毕后挂载自定义逻辑,实现灵活扩展。