外观
攻击防护
攻击防护是 GinWAF 的核心能力,通过在 OpenResty 请求处理阶段对请求进行实时检测,识别并拦截常见 Web 攻击。
支持的检测类型
GinWAF 内置 15 类攻击检测模块:
| 分类 | 检测项 | 说明 |
|---|---|---|
| 注入类 | SQL 注入 | 识别联合查询、布尔盲注、时间盲注、报错注入等 |
| 命令注入 | 识别系统命令拼接与执行 | |
| PHP 代码注入 | 识别 PHP 代码执行类载荷 | |
| Java 代码注入 | 识别 Java 表达式与代码执行类载荷 | |
| ASP 代码注入 | 识别 ASP 代码执行类载荷 | |
| 脚本类 | XSS | 识别反射型与存储型跨站脚本载荷 |
| 模板注入 | 识别 SSTI 模板引擎注入 | |
| 文件类 | 文件包含 | 识别本地 / 远程文件包含 |
| 文件上传 | 校验扩展名、文件头与 Content-Type 一致性 | |
| 协议类 | SSRF | 识别服务端请求伪造 |
| HTTP 走私 | 识别畸形 HTTP 协议与请求走私 | |
| CSRF | 基于 Origin / Referer / Token 语义判定 | |
| Cookie 防护 | 识别 Cookie 注入、会话固定与敏感信息泄露 | |
| 反序列化 | PHP 反序列化 | 识别 PHP 反序列化载荷 |
| Java 反序列化 | 识别 Java 反序列化载荷 |
检测模式
每个检测项支持四档模式,可独立配置:
| 模式 | 说明 |
|---|---|
| 关闭 | 不检测该项,请求直接放行 |
| 观察 | 拦截命中的恶意请求(如注入),但不拉黑来源 IP |
| 标准 | 常规检测强度,默认模式,兼顾检出率与误报率 |
| 严格 | 增强检测强度,覆盖更多变体,可能增加误报 |
四档强度依次递增:关闭 → 观察 → 标准 → 严格。
观察模式的定位
观察模式依然会拦截命中攻击特征的请求,区别只在于不触发自动封禁——来源 IP 不会被写入黑名单。
因此它适合两种场景:一是新站点上线初期,用来确认哪些正常业务会被误拦(误报体现为请求被挡、但不会把用户 IP 长期封掉,影响面可控);二是某些来源 IP 不便拉黑的场景(如共享出口、合作伙伴网关)。
新站点的稳妥做法是:可疑检测项先设为「观察」,运行一段时间确认无误拦后,再切换为「标准」;对安全要求高的业务可对核心检测项(如 SQL 注入、XSS)使用「严格」。
配置操作
攻击防护按站点独立配置。操作步骤:
- 登录管理后台,在左侧菜单展开「网站管理」,点击「Web 应用站点管理」。
- 在站点列表中找到目标站点,点击该行的「修改」。
- 在站点编辑页切换到「攻击防护配置」标签页,页面列出 15 项检测项,每项提供「关闭 / 观察 / 标准 / 严格」四档单选,默认选中「标准」。
- 按需逐项选择模式。若要把全部检测项统一为同一档位,可在页面顶部「批量设置全部攻击检测」下拉中选择模式,再点击「批量应用」,该操作不影响下方的自动封禁配置。
- 在同一标签页下方的「WAF 攻击自动封禁」区域,确认封禁开关及统计时长、命中阈值、封禁时长三项参数。
- 点击页面左下角「保存修改」,配置写入该站点 ID 的攻击防护 JSON 文件并下发,无需重启服务。点击「返回列表」不会保存改动。

上图中,顶部为批量设置工具条,中部为 15 项检测项的四档单选(蓝色实心圆点为当前选中项),底部为「WAF 攻击自动封禁」区域。
判定机制
GinWAF 采用分层评分制,而非单条规则命中即拦截:
| 评分维度 | 分值 |
|---|---|
| 语义特征 | 50 |
| 高危特征 | 40 |
| 行为特征 | 35 |
| 异常特征 | 20 |
- 命中高危特征且总分达到 40,或总分达到阻断阈值(标准 40 / 严格 30)即判定为攻击;「观察」沿用标准的判定阈值,「关闭」不参与判定
- 总分封顶 100
- 检测过程包含多轮解码(Unicode、宽字节、URL 二次编码、HTML 实体、转义字符、注释替换),并支持 Base64 载荷探测与跨参数语义关联
自动封禁
对持续攻击的来源 IP,可开启自动封禁。该区域位于「攻击防护配置」标签页底部,开关开启后三项参数才可编辑:
| 参数 | 说明 | 默认值 |
|---|---|---|
| 自动封禁开关 | 是否启用 | 开启 |
| 统计时长 | 命中次数统计窗口(秒) | 60 |
| 命中阈值 | 窗口内命中达到该次数即封禁 | 5 |
| 封禁时长 | 封禁持续时间(秒) | 3600 |
界面提示原文为「观察模式只拦截恶意请求,不会封禁IP;自动封禁配置仅对标准和严格模式生效」,与上文模式说明一致。截图中命中阈值为 10 次,是示例站点调整后的取值,新建站点默认为 5 次。
适用范围
自动封禁仅对「标准」与「严格」模式生效。处于「观察」模式的检测项命中后会照常拦截请求,但只写入攻击日志,不会把来源 IP 加入黑名单;「关闭」则不检测,自然也不会封禁。
被封禁的 IP 会出现在「黑名单管理」中,可随时一键解封。
