Xenice WAF:WordPress WAF 防火墙与请求防护插件

¥260.00

WordPress安全防护插件Xenice WAF,提供IP黑白名单、SQL注入防御、CC攻击防护、JS人机验证等功能。基于SQLite轻量存储,无需额外扩展,守护您的网站安全。

在日益复杂的网络环境中,WordPress站点始终是攻击者的重点目标。Xenice WAF 不只是一个安全插件,更是一套专为WordPress设计的主动式Web应用防火墙。它基于PHP原生实现,深度集成SQLite数据库(无需额外扩展),以极小性能开销,为您提供IP黑白名单、URI/参数过滤、CC攻击防护、JS挑战等全方位安全能力。

为什么选择 SQLite?

  • 零配置:无需安装Redis或MySQL扩展,WordPress环境开箱即用
  • 轻量高效:单文件数据库,读写性能优异,适合日均百万级请求
  • 数据持久化:日志与频率统计安全存储在/wp-content/uploads/xwaf/目录
  • 自动维护:支持日志自动过期清理与条数限制,无需人工干预

📦 核心能力一览

功能模块 说明
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,无需额外服务,数据安全可靠。

⚙️ 后台配置详解

Xenice WAF 提供了直观的 WordPress 后台管理界面,配置入口位于 「WAF → Settings」 ,共分为7个配置标签页,全面覆盖安全策略的各个维度。

1. General(通用设置)

  • 默认拦截HTTP状态码:自定义返回的HTTP状态码(400-599),默认403。
  • 排除搜索引擎蜘蛛:勾选后,Googlebot、Bingbot、Baiduspider等主流搜索引擎将不受WAF规则限制,避免影响SEO。

2. IP Settings(IP设置)

白名单IP列表

  • 完全绕过WAF检测,适合管理员IP或可信服务器。
  • 支持格式示例:
    • 127.0.0.1 — 单个IP
    • 10.0.0.* — 通配符匹配
    • 40.77.167.0/24 — CIDR网段

黑名单IP列表

  • 直接拦截,适用于已知攻击源或恶意IP。

3. URI Settings(URI设置)

白名单URI模式

  • 匹配到的URI路径将跳过所有WAF规则。
  • 默认已预置:
    • ^\/wp-admin(\/.*)?$ — WordPress管理后台
    • ^\/wp-json(\/.*)?$ — REST API

黑名单URI模式

  • 匹配到的URI路径将直接拦截,适合封锁特定漏洞路径或恶意入口。

4. Filter Rules(过滤规则)⭐ 核心配置区

Xenice WAF 提供了最细粒度的过滤能力,支持对请求的URI路径、参数值、参数名进行独立过滤:

过滤类型 说明 典型应用场景
GET URI Filters 拦截匹配特定正则的GET请求URI 拦截访问敏感文件路径
POST URI Filters 拦截匹配特定正则的POST请求URI 封锁wp-login.php暴力破解、xmlrpc.php攻击
GET Args Value Filters 过滤GET参数中的恶意值 SQL注入(select|union|insert
GET Args Key Filters 过滤GET参数名(Key)中的恶意字符 检测参数名中的目录遍历(../)或XSS
POST Args Value Filters 过滤POST参数中的恶意值 表单注入、跨站脚本攻击
POST Args Key Filters 过滤POST参数名(Key)中的恶意字符 检测提交字段名中的恶意代码
User-Agent Filters 拦截特定User-Agent的请求 封锁扫描器、恶意爬虫

💡 使用建议:
所有过滤规则均支持正则表达式,一行一条规则,支持#分隔符,大小写不敏感。

5. Block Settings(频率限制与封禁)

IP封禁模块

  • 基于IP总请求频率,当单IP在指定时间窗口内请求次数超过阈值,自动封禁。
  • 可自定义时间窗口、封禁时长、返回HTTP状态码(默认429 Too Many Requests)。
  • 数据存储:封禁状态存入SQLite,持久化保存。

URI限流模块

  • 针对单个IP访问单个URI的频率进行限制,精准防御CC攻击。
  • 可指定监控的请求方法(GET/POST)。
  • 数据存储:频率计数器使用SQLite,避免内存溢出。

6. JS Challenge(JavaScript挑战)

  • 启用后,首次访问的请求会返回一个JavaScript计算挑战,只有浏览器正确执行并携带验证Cookie后才能正常访问。
  • 有效拦截:
    • 自动化扫描工具
    • 无头浏览器脚本
    • 非浏览器发起的恶意请求
  • 支持配置:
    • 自定义Cookie名称与过期时间
    • 最大失败次数与失败锁定时间
    • 白名单URI(绕过JS Challenge,如静态资源、API接口)

7. Log Settings(日志设置)

  • 支持配置访问日志与拦截日志的:
    • 过期时间(默认7天,604800秒)
    • 最大保留条数(默认各10000条)
  • 存储位置/wp-content/uploads/xwaf/xwaf.sqlite
  • 自动清理:后台定时任务自动清理过期日志,无需手动维护