anye1991/shield-waf-master

GitHub: anye1991/shield-waf-master

基于 PHP 的模块化 Web 应用防火墙,通过编码归一化、语义分析和多维评分保护 PHP 站点免受常见 Web 攻击。

Stars: 0 | Forks: 0

# 盾甲 WAF (Shield WAF) v3.0.0 [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/13568/badge)](https://www.bestpractices.dev/projects/13568) [![Version](https://img.shields.io/badge/version-3.0.0-blue)]() [![PHP](https://img.shields.io/badge/PHP-%3E%3D7.4-purple)]() [![Docker](https://img.shields.io/badge/Docker-Ready-2496ED)]() **全球顶级编码归一化 · 智能语义分析 · 主动路径围堵 · 模块化 PHP Web 应用防火墙** 盾甲 WAF 是一款专为 WordPress(或任意 PHP 站点)设计的 Web 应用防火墙,核心战略是**不追着攻击者跑,而在必经之路设防**。以 **14 层递归编码归一化**、**500+ 全球同形字符映射**、**10 维深度语义分析**、**四维智能评分**、**8 维高级防护**和**攻击路径预判围堵**为核心,实现从被动拦截到主动围堵的革命性安全架构。 ## v3.0.0 重大更新 ### 新增 8 个高级防护模块 | 模块 | 文件 | 防御目标 | |------|------|----------| | **SSRF 防护** | `src/Defense/SsrfDefender.php` | 内网IP探测、云元数据端点(169.254.169.254)、localhost绕过 | | **NoSQL 注入** | `src/Defense/NoSqlInjection.php` | MongoDB操作符($where/$regex/$gt)、Redis危险命令 | | **请求走私** | `src/Defense/RequestSmuggling.php` | CL.TE/TE.CL攻击、Content-Length冲突、非法chunked编码 | | **JWT 安全** | `src/Defense/JwtSecurity.php` | 空签名、alg=none降级、过期token、无效claim | | **模板注入** | `src/Defense/TemplateInjection.php` | Jinja2/Twig/Smarty表达式、`__class__`/`__bases__`危险访问 | | **API 安全** | `src/Defense/ApiSecurity.php` | 路径遍历、控制字符、敏感文件访问、参数大小限制 | | **CRLF 注入** | `src/Defense/CrlfInjection.php` | CRLF序列、URL编码换行、Header注入(Location/Set-Cookie) | | **缓存投毒** | `src/Defense/CachePoisoning.php` | 缓存绕过头、Vary操纵、Host头投毒、X-Forwarded注入 | ### 增强安全响应头 - **完整 CSP 策略**:default-src/script-src/style-src/img-src/font-src/connect-src/object-src/base-uri/form-action/frame-ancestors - **Permissions Policy**:禁用 30+ 敏感 API(geolocation/microphone/camera/payment 等) - **跨域隔离**:COOP/CORP/COEP 三重跨域安全头 - **Nonce 支持**:动态生成 CSP nonce,支持严格 CSP 模式 ### 目录结构重组 所有核心代码从根目录迁移至 `src/` 分子目录,按功能模块化组织。 ### Docker 容器化 新增 Dockerfile + docker-compose.yml,支持一键容器化部署。 ### 爬虫防护全面升级到 5 星 - **32种搜索引擎蜘蛛识别**:Google/Bing/Baidu/Yandex/360/搜狗/神马/字节/Ahrefs/Semrush 等,DNS 反向+正向双验证 - **搜索引擎绝对放行**:Bot 检测层面 100% 放行,攻击检测阈值从 60 提升到 95,确保正常爬取不误拦 - **新增无头浏览器检测**:17种(Puppeteer/Playwright/PhantomJS/Selenium/HeadlessChrome 等) - **新增 UA 随机化检测**:同 IP 5分钟内≥3个不同UA → 代理池/爬虫集群特征 - **新增爬取深度分析**:平均深度≥6层=100分(人类通常1-3层) - **新增蜜罐链接系统**:页面注入隐藏链接(4种隐藏方式),爬虫点击立即100%标记恶意 ## 核心架构总览 请求输入 ↓ ┌─────────────────────────────────────────────────────┐ │ 14 层编码归一化引擎 (src/Core/Normalizer.php) │ │ URL递归 → HTML实体 → Unicode → UTF-7 → Base64 → │ │ NFKC → 全角半角 → 同形字 → 零宽字符 → SQL注释 → │ │ 空格压缩 → 大小写 → 语义上下文 → 双重编码检测 │ └──────────────────────┬──────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────┐ │ 10 维语义分析引擎 (src/Semantic/) │ │ L1 字符语义 → L2 词汇语义 → L3 结构语义 → │ │ L4 参数语义 → L5 业务语义 → L6 逻辑推理 → │ │ L7 意图推理 → L8 攻击链关联 → L9 语义记忆池 → │ │ L10 对抗样本防御 │ │ + 多向量语义融合 (URL/Body/Header/Cookie/UA/Referer)│ └──────────────────────┬──────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────┐ │ 四维智能评分引擎 (src/Core/Scorer.php) │ │ 熵值分析(20%) + 语义分析(30%) + │ │ 编译偏差(25%) + 编码偏离(25%) │ └──────────────────────┬──────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────┐ │ 8 维高级防护 (src/Defense/) │ │ SSRF → NoSQL → 请求走私 → JWT → 模板注入 → │ │ API安全 → CRLF注入 → 缓存投毒 │ └──────────────────────┬──────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────┐ │ 误报控制 + 路径预判 + 主动防御 │ │ 7层误报确认 → 攻击者画像 → 路径预判 → │ │ 蜜罐部署 → 预判拦截 → 攻击链提前封堵 → │ │ 阶段进阶拦截 → 累进惩罚 │ └──────────────────────┬──────────────────────────────┘ ↓ allow / monitor / block ## 目录结构(v3.0.0) shield-waf-master/ ├── shield-waf.php # 主入口(加载器 + 核心流程) ├── config.php # 配置常量(v3.0.0 新增12项配置) ├── stats.php # 攻击日志统计 ├── .env.example # 环境变量模板 ├── .htaccess # Apache 安全规则 │ ├── docker-compose.yml # Docker Compose 一键部署 ├── Dockerfile # PHP 8.2-FPM + Nginx 镜像 ├── docker/ # Docker 配置目录 │ ├── entrypoint.sh # 容器入口脚本 │ ├── nginx.conf # Nginx 配置 │ ├── php.ini # PHP 配置 │ └── supervisord.conf # Supervisor 配置 │ ├── src/ # ★ 核心代码目录 │ ├── Core/ # 核心引擎 │ │ ├── Normalizer.php # 14层编码归一化引擎 │ │ ├── Detector.php # 攻击检测(双引擎) │ │ └── Scorer.php # 四维智能评分引擎 │ │ │ ├── Semantic/ # 🔥 10维语义分析引擎 │ │ ├── SemanticEngine.php # 总引擎(10维+围堵策略) │ │ ├── CharSemantics.php # L1 字符语义 │ │ ├── WordSemantics.php # L2 词汇语义 │ │ ├── StructureSemantics.php # L3 结构语义 │ │ ├── ParamSemantics.php # L4 参数语义 │ │ ├── BusinessSemantics.php # L5 业务语义 │ │ ├── LogicInference.php # L6 逻辑推理 │ │ ├── IntentInference.php # L7 意图推理 │ │ ├── AttackChainAnalyzer.php # L8 攻击链关联 │ │ ├── SemanticMemoryPool.php # L9 语义记忆池 │ │ ├── AdversarialDefense.php # L10 对抗样本防御 │ │ ├── MultiVectorFusion.php # 多向量语义融合 │ │ ├── FalsePositiveGuard.php # 误报控制引擎(7层) │ │ ├── AttackPathPredictor.php # 攻击路径预判引擎 │ │ ├── ActiveDefense.php # 主动防御(蜜罐+围堵) │ │ ├── IntentAnalyzer.php # 意图分析器 │ │ └── ObfuscationAnalyzer.php # 混淆分析器 │ │ │ ├── Defense/ # 防御模块(20个) │ │ ├── SsrfDefender.php # ★ SSRF 防护 │ │ ├── NoSqlInjection.php # ★ NoSQL 注入检测 │ │ ├── RequestSmuggling.php # ★ 请求走私检测 │ │ ├── JwtSecurity.php # ★ JWT 安全 │ │ ├── TemplateInjection.php # ★ 模板注入检测 │ │ ├── ApiSecurity.php # ★ API 安全 │ │ ├── CrlfInjection.php # ★ CRLF 注入检测 │ │ ├── CachePoisoning.php # ★ 缓存投毒防护 │ │ ├── SecurityHeaders.php # 安全响应头(增强版) │ │ ├── GraphQLDefender.php # GraphQL 注入检测 │ │ ├── Upload.php # 7层文件上传防护 │ │ ├── MalwareScanner.php # 后门/木马扫描引擎 │ │ ├── RateLimit.php # CC攻击防护 │ │ ├── ApiRateLimit.php # API独立速率限制 │ │ ├── CsrfProtect.php # CSRF 防护 │ │ ├── CorsPolicy.php # 跨域请求控制 │ │ ├── SessionSecurity.php # 会话Cookie安全 │ │ ├── WebSocketBlock.php # WebSocket 阻断 │ │ ├── OutputFilter.php # 输出过滤 │ │ └── Chunked.php # 分块传输解码 │ │ │ ├── Learn/ # 自动学习系统 │ │ └── AutoLearn.php # 攻击模式学习+规则生成+动态权重 │ │ │ ├── Bot/ # 🕷️ 机器人检测(7个模块) │ │ ├── BotManager.php # 统一入口 + 决策引擎 │ │ ├── BotFingerprint.php # 指纹识别(32种搜索引擎+17种无头浏览器) │ │ ├── BotClassifier.php # 6类机器人分类 │ │ ├── BotScorer.php # 四维评分(指纹+语义+行为+攻击链) │ │ ├── BotSemantic.php # 语义行为分析(6维度) │ │ ├── HoneypotLinks.php # 蜜罐链接系统 │ │ └── CaptchaHandler.php # 验证码挑战(滑块/点击/行为) │ │ │ ├── Admin/ # 管理后台 │ │ ├── Dashboard.php # 仪表盘页面 │ │ ├── DashboardApi.php # 仪表盘数据接口 │ │ ├── DashboardBot.php # 机器人管理页面 │ │ ├── ScannerApi.php # 扫描API │ │ ├── SandboxApi.php # 沙箱API │ │ ├── Sandbox.php # 虚拟沙箱(文件监控+隔离+恢复) │ │ ├── IpManager.php # IP封禁/白名单/累进惩罚 │ │ ├── DarkGate.php # 暗门二次验证 │ │ └── Waf403Template.php # 403拦截页面模板 │ │ │ └── Support/ # 辅助文件 │ ├── Functions.php # 通用函数库 │ ├── homoglyph_map.json # 500+同形字符映射表 │ └── sandbox-manager.sh # 沙箱管理脚本 │ ├── data/ # 数据目录(自动创建) ├── logs/ # 日志目录(自动创建) └── waf_logs/ # WAF运行日志(自动创建) ## 功能清单 ### 一、编码归一化引擎 | 分类 | 模块 | 说明 | |------|------|------| | **14层编码归一化** | `src/Core/Normalizer.php` | L1 URL递归解码 → L2 HTML实体 → L3 Unicode转义 → L4 UTF-7 → L5 Base64智能解码 → L6 NFKC规范化 → L7 全角半角 → L8 同形字符映射(500+) → L9 零宽/控制字符清除 → L10 SQL注释移除 → L11 空格压缩 → L12 大小写统一 → L13 语义上下文归一化 → L14 双重编码检测与深度解码 | | **上下文感知** | `src/Core/Normalizer.php` | 对 JSON/XML 载荷进行结构保留式归一化;返回编码深度、变换次数、编码类型、双重编码标记等上下文数据 | ### 二、语义分析引擎 | 层级 | 模块 | 说明 | |------|------|------| | **L1 字符语义** | `src/Semantic/CharSemantics.php` | 识别SQL/HTML/代码/自然语言/Base64,特殊字符频率、不可打印字符、零宽字符、字符熵 | | **L2 词汇语义** | `src/Semantic/WordSemantics.php` | SQL关键字、表名、列名、函数、变量、自然词、危险函数、HTML/JS标签 | | **L3 结构语义** | `src/Semantic/StructureSemantics.php` | SQL/HTML/JS语法结构解析(编译器级),路径结构、编码结构、嵌套深度 | | **L4 参数语义** | `src/Semantic/ParamSemantics.php` | 参数名与参数值类型匹配度检测,参数类别推断、预期类型匹配 | | **L5 业务语义** | `src/Semantic/BusinessSemantics.php` | 9种业务场景识别(搜索/登录/评论/上传/管理后台/API等),场景违规检测 | | **L6 逻辑推理** | `src/Semantic/LogicInference.php` | 恒真式检测(1=1)、恒假式、逻辑组合攻击、时间盲注(sleep/benchmark)、报错注入(extractvalue/updatexml)、布尔盲注 | | **L7 意图推理** | `src/Semantic/IntentInference.php` | 识别攻击者阶段:侦察→探测→尝试→攻击→利用,预判下一步行动 | | **L8 攻击链关联** | `src/Semantic/AttackChainAnalyzer.php` | 8种攻击链模式(SQL注入链/XSS链/RCE链等),关联同一IP多步攻击行为,进度追踪,提前拦截 | | **L9 语义记忆池** | `src/Semantic/SemanticMemoryPool.php` | 跨请求深层语义指纹记忆,正常基线建立,演化异常检测(熵突变/风险跃升/阶段突进) | | **L10 对抗防御** | `src/Semantic/AdversarialDefense.php` | 6种对抗攻击检测:语义稀释、阈值规避、归一化欺骗、上下文切换、时间分散、多向量协同 | | **MV 多向量融合** | `src/Semantic/MultiVectorFusion.php` | 8向量统一分析:URI路径/Query/POST/Headers/UA/Referer/Cookie/Raw Body,跨向量异常检测 | ### 三、智能评分与决策 | 分类 | 模块 | 说明 | |------|------|------| | **四维智能评分** | `src/Core/Scorer.php` | 熵值分析(20%) + 语义分析(30%) + 编译偏差(25%) + 编码偏离(25%),交叉证据加成,多规则命中加成 | | **自动学习** | `src/Learn/AutoLearn.php` | 攻击载荷记录、模式提取(3次触发)、规则自动生成、动态权重调整(7天趋势)、误报/漏报反馈机制、正常请求白名单 | | **误报控制** | `src/Semantic/FalsePositiveGuard.php` | 7层确认机制:业务模式匹配→参数名白名单→指标质量检查→行为基线→维度一致性→危险特征检查→归一化检查 | | **路径预判** | `src/Semantic/AttackPathPredictor.php` | 攻击者画像识别(脚本小子/扫描器/高级攻击者/APT/渗透测试员),5阶段攻击路径图,8种攻击类型路径映射 | | **主动防御** | `src/Semantic/ActiveDefense.php` | 蜜罐部署(8种)→预判路径拦截→攻击链提前封堵→阶段进阶拦截→累进惩罚(最大10倍) | ### 四、高级防护模块(v3.0.0 新增) | 分类 | 模块 | 说明 | |------|------|------| | **SSRF 防护** | `src/Defense/SsrfDefender.php` | 检测内网IP(127./10./172.16-31./192.168.)、云元数据端点(169.254.169.254)、localhost关键词、协议白名单 | | **NoSQL 注入** | `src/Defense/NoSqlInjection.php` | MongoDB操作符($where/$regex/$gt/$ne)、JavaScript注入、Redis危险命令(CONFIG/FLUSHALL/ EVAL) | | **请求走私** | `src/Defense/RequestSmuggling.php` | CL.TE/TE.CL攻击、Content-Length与Transfer-Encoding冲突、非法chunked编码、双TE头 | | **JWT 安全** | `src/Defense/JwtSecurity.php` | 空签名检测、alg=none降级攻击、过期token、无效claim验证、头部篡改检测 | | **模板注入** | `src/Defense/TemplateInjection.php` | Jinja2(`{{}}`/`{%}%`)、Twig、Smarty表达式、`__class__`/`__bases__`/`__subclasses__`危险访问 | | **API 安全** | `src/Defense/ApiSecurity.php` | 敏感文件访问(.env/.git/.htaccess)、路径遍历、控制字符、参数大小限制、JSON深度解析 | | **CRLF 注入** | `src/Defense/CrlfInjection.php` | CRLF序列检测、URL编码换行、Header注入(Location/Set-Cookie/Content-Type等) | | **缓存投毒** | `src/Defense/CachePoisoning.php` | 缓存绕过头、Vary头操纵、Host头投毒、X-Forwarded-Host注入、CRLF+Header组合攻击 | ### 五、沙箱与上传防御 | 分类 | 模块 | 说明 | |------|------|------| | **虚拟沙箱** | `src/Admin/Sandbox.php` | 实时文件监控、自动定时扫描、精确恶意代码定位(行号+字符范围)、文件隔离与恢复、新恶意文件秒删除 | | **后门扫描** | `src/Defense/MalwareScanner.php` | 集成沙箱多引擎分析,特征码+启发式扫描全站PHP文件 | | **7层上传检测** | `src/Defense/Upload.php` | 扩展名白名单→MIME检测→GD库图像验证→SVG专用检测→编码归一化→语义分析→智能评分,防御图像马/SVG恶意文件 | ### 六、爬虫防护与机器人检测(⭐ 5星) | 分类 | 模块 | 说明 | |------|------|------| | **搜索引擎识别(32种)** | `src/Bot/BotFingerprint.php` | Google/Bing/Baidu/Yandex/360/搜狗/神马/字节/Ahrefs/Semrush等,DNS反向+正向双验证 | | **搜索引擎绝对放行** | `src/Bot/BotManager.php` + `shield-waf.php` | Bot层面100%放行,攻击检测阈值从60提升到95,确保正常爬取不误拦 | | **无头浏览器检测** | `src/Bot/BotFingerprint.php` | 17种:Puppeteer/Playwright/PhantomJS/Selenium/HeadlessChrome/WebDriver/Lighthouse等 | | **UA随机化检测** | `src/Bot/BotSemantic.php` | 同IP 5分钟内≥3个不同UA → 代理池/爬虫集群特征(70~100分) | | **爬取深度分析** | `src/Bot/BotSemantic.php` | 平均爬取深度≥6层=100分,人类通常1-3层 | | **蜜罐链接系统** | `src/Bot/HoneypotLinks.php` | 页面注入隐藏链接(4种隐藏方式),爬虫点击立即100%标记恶意 | | **6维行为语义** | `src/Bot/BotSemantic.php` | 路径多样性/间隔均匀度/资源偏好/敏感探测/UA随机化/爬取深度 | | **6类分类器** | `src/Bot/BotClassifier.php` | human / search_engine / social_media / ai / crawler / malicious_bot | | **四维智能评分** | `src/Bot/BotScorer.php` | 指纹30% + 语义30% + 行为25% + 攻击链15% | | **三级验证码** | `src/Bot/CaptchaHandler.php` | 滑块验证 / 点击验证 / 行为验证 | ### 七、协议层与IP管理 | 分类 | 模块 | 说明 | |------|------|------| | **协议层防御** | `shield-waf.php` + `src/Defense/Chunked.php` | 请求方法白名单、Content-Type校验、HTTP参数污染检测、分块传输自动重组 | | **IP管理** | `src/Admin/IpManager.php` | 封禁/解封、管理员白名单(CIDR支持)、暴力尝试计数器、4阶段累进惩罚 | | **速率限制** | `src/Defense/RateLimit.php` + `src/Defense/ApiRateLimit.php` | 单IP窗口计数器;敏感路径独立限流 | ### 八、其他安全模块 | 分类 | 模块 | 说明 | |------|------|------| | **CSRF 防护** | `src/Defense/CsrfProtect.php` | 检查 Origin/Referer 头,状态改变请求必须与本站同源 | | **CORS 策略** | `src/Defense/CorsPolicy.php` | 仅允许本站域名跨域,自动处理 OPTIONS 预检 | | **安全响应头** | `src/Defense/SecurityHeaders.php` | HSTS、完整CSP、X-Frame-Options、Permissions-Policy(30+ API)、COOP/CORP/COEP跨域隔离 | | **会话加固** | `src/Defense/SessionSecurity.php` | 强制 Cookie 属性 HttpOnly、Secure、SameSite=Lax | | **WebSocket 阻断** | `src/Defense/WebSocketBlock.php` | 直接拒绝 WebSocket 升级请求 | | **GraphQL 注入** | `src/Defense/GraphQLDefender.php` | 检测 $where、$regex、__schema 等内省攻击 | | **暗门保护** | `src/Admin/DarkGate.php` | 魔法密钥 + 二次密码双重验证 | | **输出过滤** | `src/Defense/OutputFilter.php` | 捕获含敏感错误的响应,替换为通用500页面 | | **可视化仪表盘** | `src/Admin/Dashboard.php` + `src/Admin/DashboardApi.php` | 7日攻击趋势、攻击类型分布、TOP10攻击IP、IP黑白名单管理、沙箱告警、后门扫描结果 | ## 安装部署 ### 方式一:Docker 部署(推荐) # 克隆仓库 git clone https://github.com/anye1991/shield-waf-master.git cd shield-waf-master # 复制环境变量配置 cp .env.example .env # 编辑 .env 填入你的安全配置 # 一键启动 docker-compose up -d Docker 镜像包含: - PHP 8.2-FPM + Nginx - Supervisor 进程管理 - 自动权限配置 - 端口映射 8080 → 80 ### 方式二:手动部署 #### 环境要求 - PHP 7.4 或更高版本(推荐 8.0+) - 推荐启用扩展:`mbstring`、`json`、`fileinfo`、`intl`、`dom` - 目录 `waf_logs/` 需要 PHP 进程可写 #### 步骤(适用于 WordPress) 1. 将整个 `shield-waf-master` 文件夹上传至 `/wp-content/plugins/`。 2. 确保 `waf_logs/` 目录存在并可写(若不存在程序会自动创建,但需确保父目录有写入权限)。 3. 在 WordPress 主题的 `functions.php` 末尾添加: require_once WP_CONTENT_DIR . '/plugins/shield-waf-master/shield-waf.php'; 4. 立即修改 `config.php` 中的 `WAF_MAGIC_KEY` 和 `WAF_2FA_PASS`(支持从 `.env` 环境变量读取)。 5. 访问网站首页,确认无异常;若被拦截,请检查 IP 是否已封禁或通过暗门验证。 #### 非 WordPress 站点 将文件夹放在任意位置,在入口文件(如 `index.php`)最顶部添加: require_once '/path/to/shield-waf-master/shield-waf.php'; ## 配置说明 ### 环境变量(.env) 复制 `.env.example` 为 `.env` 并填入配置: # 暗门安全 WAF_MAGIC_KEY=your_magic_key_here WAF_2FA_PASS=your_2fa_password_here # 日志路径 WAF_LOG_PATH=/var/www/html/waf_logs/ # Webhook 告警 WAF_WEBHOOK_URL=https://your-webhook.com/alert ### config.php 核心参数 | 常量 | 说明 | 默认值 | |------|------|--------| | `SHIELD_WAF_VERSION` | WAF 版本号 | `3.0.0` | | `WAF_MAGIC_KEY` | 暗门魔法密钥(第一因子) | 从环境变量读取 | | `WAF_2FA_PASS` | 二次验证密码 | 从环境变量读取 | | `WAF_MAGIC_EXPIRE` | 第一因子有效期(秒) | 3600 | | `WAF_CC_LIMIT` | CC攻击阈值 | 60 | | `WAF_CC_WINDOW` | CC攻击时间窗口(秒) | 60 | | `WAF_NORMALIZE_SQL_COMMENTS` | 是否移除SQL注释 | true | | `WAF_SANDBOX_SCAN_INTERVAL` | 沙箱自动扫描间隔(秒) | 300 | | `WAF_WEBHOOK_URL` | 告警Webhook地址 | 空 | | `WAF_MAX_ENCODING_DEPTH` | 最大编码递归深度 | 15 | | `WAF_MAX_PAYLOAD_SIZE` | 最大载荷长度 | 1048576 | | `WAF_SEMANTIC_ENABLED` | 是否启用语义引擎 | true | | `WAF_SCORER_ENABLED` | 是否启用智能评分 | true | | `WAF_AUTOLEARN_ENABLED` | 是否启用自动学习 | true | ## 使用指南 ### 管理员如何免拦截? 1. 访问 `https://你的域名/wp-admin?magic=你的WAF_MAGIC_KEY` 2. 输入 `WAF_2FA_PASS` 中的密码完成二次验证 3. 验证通过后即可正常访问后台 ### 查看攻击仪表盘 通过暗门验证后,访问 `https://你的域名/waf-dashboard`。页面每5秒自动刷新,显示攻击趋势、类型分布、TOP10攻击IP、IP黑白名单管理、沙箱告警和后门扫描结果。 ### 添加自定义同形字符 编辑 `src/Support/homoglyph_map.json`,按 `"混淆字符": "映射后的ASCII"` 格式添加条目。保存后立即生效。 ### 测试防护效果 # SQL注入(恒真式) curl "https://your-domain.com/?id=1' OR '1'='1" # XSS curl "https://your-domain.com/?q=" # 双重URL编码绕过 curl "https://your-domain.com/?id=%253Cscript%253Ealert(1)%253C%252Fscript%253E" # 全球同形字符(高棉文 s) curl "https://your-domain.com/?q=%E1%9E%9Flect" # 时间盲注 curl "https://your-domain.com/?id=1 AND SLEEP(5)" # SSRF 防护测试 curl "https://your-domain.com/?url=http://169.254.169.254/latest/meta-data/" # CRLF 注入测试 curl "https://your-domain.com/?redirect=%0d%0aSet-Cookie:admin=1" # 模板注入测试 curl "https://your-domain.com/?name={{7*7}}" ## 核心防御策略 ### 预判路径围堵(革命性架构) 传统WAF追着攻击者跑,攻击者永远领先。盾甲WAF在攻击者必经之路设防: 1. **攻击者画像识别** — 判断攻击者类型(脚本小子/扫描器/高级攻击者/APT/渗透测试员) 2. **5阶段路径预判** — 侦察→探测→尝试→攻击→利用,每个阶段预测下一步路径和参数 3. **蜜罐部署** — 8种虚假入口(管理后台/phpMyAdmin/Git仓库/配置文件/SSH密钥等) 4. **预判路径拦截** — 命中高概率预判路径直接封禁 5. **攻击链提前封堵** — 攻击链进度≥40%自动拦截 6. **阶段进阶拦截** — 检测阶段跳变立即封禁 ### 7层误报控制 确保不误杀正常请求:业务模式匹配→参数名白名单→指标质量检查→行为基线→维度一致性→危险特征检查→归一化检查。**宁可漏网,绝不误杀。** ### 自适应学习系统 | 功能 | 说明 | |------|------| | **攻击载荷记录** | 所有被拦截的攻击归一化后记录,统计频率 | | **模式自动提取** | 同一载荷出现3次自动提取特征,生成新检测规则 | | **动态权重调整** | 根据7天攻击趋势动态调整各攻击类型权重(0.5~2.0倍) | | **正常请求白名单** | 记录正常请求模式,建立参数基线,未知参数触发偏差评分 | | **反馈修正** | 支持误报/漏报反馈,自动调整评分权重 | ### 4阶段累进惩罚 - 第1次:1天 - 第2次:7天 - 第3次:30天 - 第4次及以上:永久封禁 主动防御引擎封禁还有额外累进(最大10倍),攻击越多次封越久。 ## 性能考虑 - 所有正则均为预编译,归一化有深度/长度限制 - 语义分析各模块独立,可按需启用/禁用 - 文件操作有完整路径验证和错误处理 - 个人博客、中小站点无需额外配置即可流畅运行 - 若日请求量超过百万,建议将计数器和封禁列表迁移至 Redis ## 常见问题 **Q:为什么我清空白名单文件后仍然能直接访问后台?** **Q:仪表盘无数据?** **Q:上传合法图片被拦截?** **Q:正常搜索被误拦?** **Q:如何临时关闭WAF?** **Q:Docker 部署后访问不了?** ## 版权 © 2026 暗夜铭少 (DarkNightMing) 官网网站:https://waf.duduziy.com ## License This project is licensed under the **Business Source License 1.1**. - Free for non-production use (learning, testing, personal projects) - Commercial production use requires a commercial license - Changes to Apache 2.0 on 2029-07-01 For commercial licensing: https://duduziy.com/license.html See the [LICENSE](./LICENSE) file for full details. **守护每一行代码,从盾甲开始。**
标签:API安全, AppImage, CISA项目, DoH影响, ffuf, JSON输出, OpenVAS, PHP, WAF, Web应用防火墙, WordPress, 安全防护, 请求拦截