Files
qing d036af935f feat(waf): 启用 OWASP CRS 异常评分制自动拦截
- SecRuleEngine On 自动拦截异常评分达阈值的请求(规则 949110)
- 新增 rules/local/tuning.conf 调优文件(偏执等级 1 + 阈值 5/4)
- tuning.conf 独立于自动生成的 crs/coraza.conf,重跑 fetch 不覆盖
2026-08-04 20:40:25 +08:00

38 lines
1.7 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# waf.conf —— WAF 规则主入口(仅放基础配置)
# 极客操作:
# - 在 local/ 下新增 *.conf 文件,engine 会自动扫描加载(按文件名字母序)
# - 修改后执行 `kill -HUP <pid>` 热加载
# - 校验语法: `waf -test rules/local/xxx.conf`
#
# 加载顺序(engine.Reload):
# 1. waf.conf ← 本文件(引擎基础配置)
# 2. local/*.conf 本地自定义规则(按文件名字母序)
# 3. crs/coraza.conf OWASP CRS 入口(若存在)
# 4. crs/rules/*.conf OWASP CRS 规则(按文件名字母序)
#
# 规则 ID 分段约定:
# 100000-199999 本地自定义规则
# 200000-200006 请求体处理器初始化(crs/coraza.conf)
# 900000-999999 OWASP CRS(由 crs/ 提供,不手改)
#
# 注意:本文件不用 Include 指令(coraza 的 Include 路径相对于 cwd 解析,
# 易出错)。engine.Reload 会先加载本文件,再扫描 local/*.conf 逐个加载。
# ===== 基础配置(SecLang) =====
# 引擎模式:
# On —— 自动拦截:异常评分达到阈值(tx.inbound_anomaly_score_threshold)即 deny
# DetectionOnly —— 只记录异常评分,不执行 deny(用于观察误报)
# Off —— 完全关闭
#
# 当前为 On(自动拦截):CRS 对每个请求累积异常分,达到阈值即拦截,低分请求全自动放行。
# 阈值在 rules/local/tuning.conf 中配置(默认 5,越小越敏感、误报越多)。
SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess On
SecDefaultAction "phase:1,pass,log,auditlog"
SecDefaultAction "phase:2,pass,log,auditlog"
# 请求体限制 10MB
SecRequestBodyLimit 10485760