ModSecurity白名单http方法全球

时间:2015-10-25 16:38:16

标签: mod-security mod-security2

是否有可能创建白名单规则,以便在阶段1中将所有GET请求列入白名单?

我的custom_rule文件正在运行 - 之前我测试了各种规则,但我真的不知道如何禁用GET请求的所有规则。

像: SecRule REQUEST_METHOD“GET”“阶段:1,记录,传递”

1 个答案:

答案 0 :(得分:0)

通行证将继续下一个规则。您想使用allow

请注意,您也可能不想记录此规则,并且应该为其指定一个ID(对于ModSecurity 2.7及更高版本是必需的):

SecRule REQUEST_METHOD "GET" "phase:1,id:1000;nolog,allow"

另请注意,allow在DetectionOnly模式下不起作用,因为它是一个破坏性的规则,这总是让我觉得这是一个不好的方法。所以你必须强制启动规则引擎才能使它在那里工作。

我有以下规则允许将静态内容列入白名单(如果有帮助的话(需要调整到您的特定环境):

#Allow any GET & HEAD requests, where no parameters passed, for static content file types
SecRule REQUEST_METHOD "^(GET|HEAD)$" "phase:1,id:'1000',chain,allow,nolog"
  SecRule &ARGS "@eq 0" "chain"
  SecRule REQUEST_FILENAME ".*\.(css|eot|gif|htm|html|jpeg|jpg|js|pdf|png|svg|ttf|woff|woff2)$" "t:lowercase,ctl:ruleEngine=On"

#Allow any GET & HEAD requests, where no parameters passed, for default index files (e.g. /somepage/)
#except for dynamic content urls (which start with api or application):
SecRule REQUEST_METHOD "^(GET|HEAD)$" "phase:1,id:'1001',chain,allow,nolog"
  SecRule &ARGS "@eq 0" "chain"
  SecRule REQUEST_URI "/$" "chain"
  SecRule REQUEST_URI "!^/(api|application)" "t:lowercase,ctl:ruleEngine=On"

如果您对此有任何疑问,请与我们联系。