应用 WAF 白名单
目录结构
|-- waf_whitelist/
  |-- waf_whitelist.yaml
  |-- ...
YAML 文件中可以包含一个或多个应用 WAF 白名单配置。
配置说明
每个 WAF 白名单配置是一个包含以下参数的对象:
| 参数名 | 数据类型 | 是否必选 | 描述 | 
|---|---|---|---|
| conditions | array | 是 | 触发白名单的条件列表 | 
| rules | array | 是 | 要忽略的 WAF 规则列表 | 
conditions 配置
可参考 页面规则 - 条件
rules 配置
| 参数名 | 数据类型 | 是否必选 | 描述 | 
|---|---|---|---|
| rule_set_name | string | 是 | WAF 规则集的名称 | 
| rule_names | array | 否 | 要忽略的具体规则名称列表 | 
配置示例
- conditions:
  - var: uri
    op: eq
    val: /hello
  rules:
  - rule_set_name: scanner_detection
    rule_names:
    - '913100'
    - '913110'
  - rule_set_name: protocol_enforcement
此配置定义了两个 WAF 白名单规则,使用规则集名称及规则名称来指定要忽略的规则。
其中的 '913100' 和 '913110' 是 ModSecurity 规则的 ID,在 OpenResty Edge 中被用作规则名称,因此需要是字符串类型。当您使用自定义规则集时,可以自行指定规则名称。
使用示例
更新配置到 OpenResty Edge 中:
edge-config https://192.168.1.1 -s -t 2051e780-1897-4ea0-92b4-2c2f0169aa94 -l waf_whitelist -i /root/oredge-configs -d test.com
从 OpenResty Edge 中导出配置:
edge-config -u https://192.168.1.1 -s -t 2051e780-1897-4ea0-92b4-2c2f0169aa94 -E -l waf_whitelist -d test.com
清理 OpenResty Edge 中的配置:
edge-config -u https://192.168.1.1 -s -t 2051e780-1897-4ea0-92b4-2c2f0169aa94 -c -l waf_whitelist -d test.com
示例中均使用 -l waf_whitelist 来指定只操作应用 WAF 白名单相关的配置。
注意事项
- 每个白名单规则必须包含 - conditions和- rules两个部分。
- conditions中的每个条件必须包含- var、- op和- val(或- vals)字段。
- rules中的每个规则必须包含- rule_set_name,- rule_names是可选的。
- 如果使用 - rule_set_name,确保该名称在全局 WAF 规则集中存在。
- 如果指定了 - rule_names,则只有列出的规则会被忽略;否则,整个规则集都会被忽略。
- 在导入配置时,工具会先删除所有现有的 WAF 白名单,然后添加新的白名单规则。 
- 白名单规则的处理顺序与配置文件中的顺序相反,即最后定义的规则会首先被处理。 
- 在导出配置时,工具会将规则集 ID 转换为对应的规则集名称,以提高可读性。 
- 如果应用不存在,工具会在导出时给出警告信息。 
- WAF 白名单可以帮助减少误报,但过度使用可能会降低安全性,请谨慎配置。 
- 在处理配置时,工具会自动将规则集名称转换为对应的 ID。