WP Manifestindependent plugin directory
manifest / security / qilingsecurity

启灵安全防护

Wordpress 安全防护插件

by summer · github.com/wujiit/qilingsecurity · website

1stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/wujiit/qilingsecurity/archive/refs/heads/main.zip

启灵安全防护插件使用说明

适用版本:2.2.1

1. 插件有什么用

启灵安全防护是一个面向 WordPress 站点的“安全体检 + 基础主动防护”插件。
它的定位是:在不改动你业务代码的前提下,帮你做风险发现、攻击拦截、审计留痕和会话控制。

请注意:它是站点侧基础防护层,不替代服务器防火墙、WAF、CDN、主机安全策略。

2. 目前有多少功能

按当前版本统计:

  • 11 个主要功能标签(不含“使用说明”页)
  • 12 项深度扫描步骤
  • 13 大设置分组
  • 80+ 个可配置项(含行为限速预设项)
  • 13 个内置扫描规则键(支持官方签名离线规则包覆盖)

3. 功能模块总览

后台入口:WP 后台 -> 启灵安全防护
插件列表也提供快捷入口:设置

主要功能标签分别是:

  1. 全盘安全体检
  2. 安全态势分析
  3. IP 风险画像
  4. 安全优化
  5. 主动防护防火墙
  6. REST 路由隔离
  7. 域名安全替换
  8. Nginx 安全建议
  9. 操作审计日志
  10. 动态 IP 封禁
  11. 用户会话管理

4. 快速上手(建议顺序)

  1. 先进入 主动防护防火墙,只开“基础加固”与“审计”相关开关。
  2. 如果站点在 CDN/反代后面,先完成 代理与真实 IP 配置,再启用封禁类能力。
  3. 如果你不是启灵主题用户,或想把收敛项单独交给插件管理,可先看 安全优化 标签页。
  4. 回到 全盘安全体检,执行一次完整扫描。
  5. 体检报告 中按严重级别优先处理 critical
  6. 确认站点当前文件状态可信后,手动点击 重建文件基线
  7. 根据实际流量逐步开启 行为型限速,先观察再拦截/封禁。
  8. 如需登录链路画像,建议把 登录 IP 风险画像 的查询模式设为 外部任务(推荐)

5. 全盘安全体检(12 步详解)

5.1 扫描步骤

  1. 全盘敏感文件扫描
  2. Uploads 目录后门查杀
  3. 主题/插件代码安全审计
  4. 插件/主题已知漏洞情报比对
  5. 异常管理员账号与权限审计
  6. 异常 Cron / MU 插件 / Drop-in 持久化扫描
  7. 数据库风险与异常 Option 扫描
  8. 网站核心目录及权限检测
  9. 公网敏感 API 暴露探测
  10. 全站暗链与防挂马深度查杀
  11. 主题/插件/上传目录变更基线比对
  12. 核心文件完整性校验

5.2 结果处理方式

  • 扫描只做“发现 + 建议”,不会自动修复文件或数据库。
  • 每条结果可标记为:待处理 / 已处理 / 已忽略
  • 结果可查看内置“修复建议指南”。
  • 针对大站点,敏感文件扫描Uploads 后门查杀代码安全审计暗链扫描 这几步已改为分片续跑;同一步可能会由多次 AJAX 请求接力完成,属于正常现象。
  • 在大目录或慢盘环境中,建议体检过程中不要关闭当前页面,等待进度条自然推进。
  • 主题/插件代码安全审计 属于静态特征匹配,命中结果可能存在误报,建议结合具体代码再判断。

5.3 核心文件完整性校验说明

  • 当前实现对比的是 WordPress 官方校验接口api.wordpress.org/core/checksums
  • 不是直接对比 GitHub 仓库。
  • 该步骤依赖外网连通性;网络不可达时该步不会产出结果。
  • 插件/主题漏洞情报比对属于“组件版本比对”,不是重型文件扫描,适合在手动体检时顺带执行。

6. 安全态势分析

聚合最近 24 小时与 7 天安全数据,重点看:

  • 24h 登录失败次数
  • 24h 行为限速命中
  • 当前活动封禁数
  • 待处理高危项
  • 攻击来源 IP Top
  • 被打最多入口
  • 爆破用户名 Top
  • 最近 7 天趋势

建议先开启“关键操作审计日志”,否则这部分数据会不完整。


7. 主动防护防火墙(重点)

7.1 11 大设置分组

  1. 基础加固
  2. 白名单与例外
  3. 代理与真实 IP
  4. 审计与追踪
  5. 登录入口保护
  6. 行为型限速防护
  7. WAF 与响应防护
  8. 扫描引擎高级设置
  9. 手机号归属地
  10. 登录 IP 风险画像
  11. 数据生命周期

7.2 基础加固

可按需启用:

  • 禁用 XML-RPC
  • 隐藏 WordPress 版本号
  • 拦截用户枚举
  • 禁止后台编辑源码
  • 禁用应用程序密码
  • 清理头部多余 Meta 标签
  • 禁用 Pingback
  • REST API 精细防护(支持观察/拦截)

7.3 白名单与例外

  • 可信 IP / 网段白名单:白名单不会触发封禁、WAF、登录限流。
  • 可信请求路径前缀:用于放行明确可信入口,减少误拦截。

7.4 代理与真实 IP(非常关键)

如果你使用 CDN、WAF、反代,必须正确配置:

  • 代理/CDN 预设(支持 Cloudflare、阿里云、腾讯云、华为云、七牛、又拍云、AWS CloudFront、Fastly、Akamai、Azure Front Door 等)
  • 可信代理 IP/CIDR
  • 真实 IP 请求头优先级
  • 宽松模式(仅凭请求头识别真实 IP,可选)

插件默认不盲目信任转发头,只有 REMOTE_ADDR 命中可信代理列表,才会解析转发头,避免伪造来源 IP。

如果你的 CDN 出口 IP 规模非常大、不便维护,可以开启“宽松模式:仅凭请求头识别真实 IP”。
注意:该模式会降低抗伪造能力,建议仅在源站已被防火墙/安全组限制为“只能被 CDN 回源访问”时启用。

7.5 审计与追踪

开启后会记录关键事件,例如:

  • 登录成功、登录失败、登出
  • 插件启用/停用
  • 关键设置更新
  • 文章删除/回收站
  • 核心升级
  • 手动安全操作(清理日志、导入规则包、踢会话等)

7.6 登录入口保护

  • 限制登录失败次数与封禁时长
  • 自定义登录入口暗号
  • 单用户最大并发登录设备数(例如填 3

并发会话超限时会自动下线最早会话,保留当前登录设备。

7.7 行为型限速防护

支持 4 组预设规则:

  • XML-RPC
  • 公开 REST API
  • 站内搜索
  • 评论提交

每组可配:

  • 统计窗口
  • 允许次数
  • 动作模式(观察 / 拦截 / 拦截并临时封禁)

7.8 WAF 与上传防护

包含:

  • 核心 WAF 关键词规则
  • 恶意上传后缀拦截
  • 上传内容与后缀一致性校验
  • SVG 上传策略
  • 扫描器 UA 黑名单
  • 安全响应头

7.9 扫描引擎高级设置

可调参数包括:

  • 扫描文件上限
  • 读取大小上限
  • 敏感后缀扩展
  • 排除路径
  • 文件基线路径与上限
  • 管理员数量预警阈值
  • 弱用户名规则
  • Cron 忽略 Hook
  • 数据库风险阈值与忽略规则

7.10 登录 IP 风险画像

这部分只分析登录链路来源 IP,不会扫描普通游客访问。

核心建议:

  • 查询模式优先使用 外部任务(推荐)
  • 次选 异步(WP-Cron)
  • 同步即时查询 只建议在低流量站点或临时排障时使用

三种模式区别:

  • 外部任务:由宝塔计划任务、UptimeRobot 或其他外部访问 URL 定时处理待刷新的 IP,最稳,最适合抗撞库浪涌。
  • 异步:依赖 WP-Cron 在后台补查,部署简单,但稳定性取决于站点访问量和 WP-Cron 可用性。
  • 同步:在登录流程里即时发起外部查询。当前版本已做短超时和超时放行,但高并发站点仍建议优先使用前两种模式。

你还可以配置:

  • 触发范围(登录成功 / 登录失败尝试 / 两者都记)
  • 单来源超时
  • 每次最多调用来源数
  • 画像缓存有效期
  • 外部任务访问密钥
  • 外部任务每次处理 IP 数

顶部单独的 IP 风险画像 标签页主要用于看统计数据、来源状态、近期事件和清理缓存,不是替代设置页。

7.11 手机号归属地

  • 基于本地号段库解析手机号归属地,不依赖远程接口。
  • 更适合作为主题用户中心或业务资料页的归属地展示数据源。
  • 这不是安全拦截项,本身不会直接拦截请求。

7.12 数据生命周期

可设置:

  • 扫描报告保留天数
  • 审计日志保留天数
  • 卸载插件时是否删除全部数据表

8. 安全优化(适合单独使用插件的站点)

安全优化 标签页聚合的是那些“本身不属于 WAF/防火墙,但对减少暴露面、减少后台外联、降低旧接口攻击面有帮助”的 WordPress 收敛项。

常见项目包括:

  • 禁用 XML-RPC
  • 禁用 Pingback
  • 隐藏 WordPress 版本号
  • 拦截用户枚举
  • 禁用应用程序密码
  • 禁止后台编辑源码
  • 清理头部多余 Meta 标签
  • 禁用 Emoji 脚本
  • 禁用 oEmbed
  • 移除短链接
  • 移除 RSD / WLW
  • 关闭远程区块 Patterns
  • 关闭区块目录搜索
  • 关闭 Openverse 媒体面板
  • 精简编辑器预加载接口

适用建议:

  • 如果你不是启灵主题用户,可以优先在这里统一管理这些 WordPress 安全收敛项。
  • 如果你已经在服务器层、主题层或其他安全插件层做了同类控制,这里不要重复开启。
  • 这部分更偏“攻击面收敛”和“后台外联减法”,不是替代扫描器和防火墙。

9. 与启灵主题优化功能的关系(避免重复开启)

当检测到你在用启灵主题(qiling)时,插件会在对应设置项旁给出“重叠提醒”。
当前版本只做“是否为启灵主题”的轻量识别,不再逐项读取主题里每个优化开关的开启状态,以减少额外判断开销。

原则:同类能力二选一即可,不要主题和插件同时重复开启同一类规则。

常见重叠项:

  • 禁用 XML-RPC
  • 隐藏 WP 版本号
  • 拦截用户枚举
  • 禁止文件编辑器
  • 禁用应用密码
  • 清理头部暴露项
  • 禁用 Pingback
  • 禁用 Emoji / oEmbed
  • 移除短链接 / RSD / WLW
  • 编辑器远程资源收敛项

10. 操作审计日志与历史清理

10.1 审计日志是否包含登录记录

包含。可记录登录成功与失败,便于分析是否被爆破。

10.2 “单独清空审计日志”做了什么

  • 只清理审计表(数据库里的 qilingsecurity_audit
  • 不影响扫描结果、封禁列表、文件基线

10.3 “立即清理历史数据”做了什么

会按你设置的保留策略删除数据库历史数据:

  • 过期扫描任务与对应结果
  • 过期审计日志
  • 已过期封禁记录
  • 过期 IP 风险画像事件
  • 过期 IP 风险画像缓存

11. 动态 IP 封禁

  • 展示当前仍在封禁期内的来源 IP
  • 支持手动“立即解封”
  • 白名单 IP 不会被封禁

12. 用户会话管理

你可以在后台直接做会话管控:

  • 下线某一个设备会话
  • 下线某用户全部会话
  • 强制全站其他用户重新登录(尽量保留当前管理员会话)

适合处理账号泄露、共享账号滥用、异常异地登录等场景。


13. 官方扫描规则更新

13.1 作用范围

  • 规则包只影响“扫描判断标准”
  • 不会自动修复网站
  • 导入和回滚均为管理员手动操作

13.2 安全策略

插件仅允许导入 官方签名规则包

  • 必须校验 rules_sha256
  • 必须校验 signer + rules_signature
  • 未签名或第三方签名会被拒绝

13.3 用户侧导入流程

  1. 在“官方扫描规则更新”中选择 JSON 文件。
  2. 点击“导入官方规则包”。
  3. 成功后可在面板看到版本、来源、哈希摘要、最近生效时间。
  4. 如有需要可“回滚上一版规则”。

普通站点用户只需要这一步。
你收到官方提供的 package-signed.json 后直接导入即可,不需要接触 rules/ 目录、签名脚本或 Wordfence 转换脚本。

14. 不依赖 WP-Cron 说明

本插件不创建定时扫描任务,不依赖默认 WP-Cron 执行扫描。
当前扫描由管理员手动触发。
“异常 Cron 扫描”是安全检测项,用于检查站点已有的 Cron 持久化风险,不是插件自己去定时跑任务。

补充说明:

  • 登录 IP 风险画像异步 模式会使用 WP-Cron 补刷新队列。
  • 如果你希望完全不依赖 WP-Cron,建议把 登录 IP 风险画像 切到 外部任务(推荐),并按面板提供的 URL 配置宝塔或第三方定时访问。

15. 数据存储说明

插件会创建 8 张业务表(带站点前缀):

  • qilingsecurity_scans
  • qilingsecurity_results
  • qilingsecurity_audit
  • qilingsecurity_ban_ips
  • qilingsecurity_baseline_files
  • qilingsecurity_phone_location_cache
  • qilingsecurity_ip_risk_profiles
  • qilingsecurity_ip_risk_events

卸载时是否删除这些表,取决于设置项“卸载插件时删除全部数据表”。


16. 二次开发与扩展

插件已预留大量 Filter,可按项目扩展,而不是改核心代码。
常用扩展点包括:

  • qs_setting_sections
  • qs_setting_fields
  • qs_proxy_presets
  • qs_rate_limit_presets
  • qs_rate_limit_rules
  • qs_scan_steps
  • qs_waf_rules
  • qs_security_headers
  • qs_bad_bot_signatures
  • qs_scan_excluded_paths
  • qs_sensitive_file_extensions
  • qs_trusted_proxy_headers
  • qs_trusted_proxy_ips
  • qs_file_integrity_paths
  • qs_db_scan_ignored_options

示例:扩展扫描排除路径

add_filter('qs_scan_excluded_paths', function ($paths, $settings) {
    $paths[] = '/wp-content/my-cache/';
    return $paths;
}, 10, 2);

示例:扩展自定义安全响应头

add_filter('qs_security_headers', function ($headers, $settings) {
    $headers['Cross-Origin-Opener-Policy'] = 'same-origin';
    return $headers;
}, 10, 2);

17. 常见建议

  • 先开审计、后开拦截,先观察流量再加严策略。
  • 站点在 CDN/反代后,先配可信代理再开封禁,否则 IP 可能不准。
  • 文件基线只应在“确认当前站点干净”时重建。
  • 登录 IP 风险画像优先选 外部任务(推荐),高并发站点尽量不要长期使用同步模式。
  • 如果你在启灵主题里已经开了同类优化项,插件 安全优化 这里就不要重复开启。
  • 插件侧是基础防护,关键防护仍应放在服务器和 CDN。