应用 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。