waf插件实现了基于ModSecurity的规则防护引擎,可以根据用户配置的规则屏蔽可疑请求,并支持OWASP CRS,为站点提供基础的防护功能。本文介绍如何配置waf插件。
说明
该插件基于开源ModSecurity规则,默认规则为静态规则,不具备识别最新的安全风险并实时更新规则集的能力,如需获取更强大的安全防护能力,请参见为MSE实例开启WAF防护。
插件类型
安全防护。
配置字段
名称 | 数据类型 | 填写要求 | 默认值 | 描述 |
useCRS | bool | 选填。 | false | 是否开启OWASP CRS,详情可参考coreruleset。 |
secRules | array of string | 选填。 | - | 用户自定义的waf防护规则,语法规则可参考ModSecurity中文手册。 |
配置示例
默认配置
启用默认配置,进行拦截。
useCRS: true
启用默认配置,仅观测,不拦截。
useCRS: true
secRules:
- "SecRuleEngine DetectionOnly"
自定义防护规则
useCRS: true
secRules:
- "SecRule REQUEST_URI \"@streq /admin\" \"id:101,phase:1,t:lowercase,deny\""
- "SecRule REQUEST_BODY \"@rx maliciouspayload\" \"id:102,phase:2,t:lowercase,deny\""
根据该配置,下列请求将被禁止访问。
curl http://example.com/admin
curl http://example.com -d "maliciouspayload"
对特定路由或域名开启
useCRS: true
secRules:
- "SecRule REQUEST_URI \"@streq /admin\" \"id:101,phase:1,t:lowercase,deny\""
- "SecRule REQUEST_BODY \"@rx maliciouspayload\" \"id:102,phase:2,t:lowercase,deny\""
在route-1
路由做如下插件配置:
secRules:
- "SecAction \"id:102,phase:1,deny\""
在*.example.com
和test.com
两个域名做如下插件配置:
secRules:
- "SecAction \"id:102,phase:1,pass\""
说明
route-1
即在创建网关路由时填写的路由名称,当匹配到该路由时,将使用此段配置。*.example.com
和test.com
用于匹配请求的域名,当发现域名匹配时,将使用此配置。配置的匹配生效顺序,将按照规则的排列顺序,匹配第一个规则后生效对应配置,后续规则将被忽略。
文档内容是否对您有帮助?