您可以将某些请求绕过 WAF。
以下是绕过 WAF 的几种方法:
通过内容长度
如果内容长度大于定义的值,则可以绕过 WAF。
自定义规则语法:
SecRule 'Variable:"value"' "phase:1,id:4000100,nolog,pass,ctl:ruleEngine=off"
示例:
在该示例中,如果 content-length 标头值大于 1048576,则请求跳过 WAF。
SecRule REQUEST_HEADERS:Content-Length "@gt 1048576" "phase:1,id:4000100,nolog,pass,ctl:ruleEngine=off"
通过分块传输编码
可以基于传输编码类型绕过 WAF。
自定义规则语法:
SecRule 'Variable "@match criteria"'""
支持对分块编码负载进行部分缓冲。将流式传输其余负载,同时保留从客户端发送的原始块边界。
示例:
在该示例中,如果用于传输的编码形式是“分块”,则请求跳过 WAF。
SecRule REQUEST_HEADERS:Transfer-Encoding "@contains chunked" "phase:1,id:4000101,nolog,pass,ctl:ruleEngine=off"
基于请求路径的特定模式
可以根据请求路径的特定模式绕过 WAF。
自定义规则语法:
SecRule 'Variable:"value"'"id:4000102,phase:1,t:none,pass,ctl:ruleEngine=off"
示例:
在该示例中,任何以字符串 /IDMProv/login.do
开头的请求将绕过 WAF。
SecRule REQUEST_URI “@beginsWith /IDMProv/login.do” “id:4000102,phase:1,t:none,pass,ctl:ruleEngine=off”