我有一个Apache 2.2.29-1.4与mod_security 2.8.0-5.25这是一个本地Java应用程序的mod_proxy_http反向代理。
我对某些URL有误报,并希望将OWASP规则列入给定URI的白名单。
目前全球将一个规则列入白名单
SecRuleRemoveById 960010
完美的作品
但是两者
<LocationMatch ^/(myapp/mymethod.do.*)$> SecRuleRemoveById 960010 ProxyPassMatch http://localhost:8080/$1 </LocationMatch>
和
<Location "/myapp/mymethod.do"> SecRuleRemoveById 960010 </Location> ProxyPass /myapp/mymethod.do http://localhost:8080/myapp/mymethod.do ProxyPassReverse /myapp/mymethod.do http://localhost:8080/myapp/mymethod.do
不要将规则列入白名单。
我也尝试添加新的mod_security规则来修改现有的,但白名单的URI总是失败…
任何见解?
960010是一个阶段1的规则。 阶段1 在处理 <location>指令之前运行。
因此,您需要使用ModSecurity为您编写一个规则,而不是Apache。
像这样的东西:
SecRule REQUEST_URI "^/myapp/mymethod.do" "phase:1,id:12345,nolog,ctl:ruleRemoveById=960010"
这基本上创build了另一个规则,只有这个URL触发,并删除这条规则。 请注意,必须在定义规则960010之前添加此项。 我已经给出了12345的规则ID,但将其更改为任何小于100,000的空闲ID(高于此规则将保留给像OWASP规则集)。
有关参考手册中所有语法的更多详细信息: https : //github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual