调优的优先顺序
CRS 调优的顺序是「先精确、后粗放」:优先做参数级排除,只让某条规则不再检查某个业务参数;其次调整异常评分阈值;最后才考虑关闭整条规则。关闭规则会让该规则的防护全部失效,应该是最后的选项,而不是第一反应。
基本信息
| 手段 | 参数级排除、评分阈值调整、规则降分或改告警、整条关闭 |
|---|---|
| 顺序 | 先定位命中的规则号与具体参数,再做最小化排除 |
| 配置位置 | 自定义排除文件(按版本要求决定加载顺序) |
| 留痕 | 每次调优记录原因、日期与责任人 |
典型使用场景
- 富文本编辑器提交的 HTML 内容被 XSS 规则拦下
- 上传接口的 base64 或二进制参数触发规则
- 业务参数中合法出现 SQL 关键字导致误报
- 升级 CRS 后出现新误报,需要逐条收敛
- 交接班时需要说明每条例外的由来
参数级排除示例
参数级排除示例
# 只让指定规则不再检查某个参数(该参数内容为富文本)
SecRuleUpdateTargetById 941100 "!ARGS:content"
# 调整异常评分触发阈值:确认业务容忍度后再改,默认较严格
SecAction "id:900110,phase:1,pass,t:none,nolog,setvar:tx.inbound_anomaly_score_threshold=10"
# 每条约例外都在注释里写清原因、日期与提出人,便于回溯调优手段对比
| 手段 | 作用范围 | 风险 |
|---|---|---|
| 参数级排除 | 指定规则的指定参数 | 小,需精确写出参数名 |
| 评分阈值调整 | 该方向的全站评分触发线 | 中,整体敏感度下降 |
| 规则降分或改告警 | 指定规则 | 中,需确认该规则的价值 |
| 整条关闭规则 | 该规则全部防护失效 | 大,谨慎使用 |
例外写在自定义文件里,不要直接改 CRS 自带规则文件:升级时自带目录会被覆盖,例外会一起丢失。
用整条关闭规则代替参数级排除,等于放弃这条规则的检测能力,遇到同类攻击时既没有告警也没有记录。