我有一个由Apache服务的应用程序,在这个应用程序上启用了mod_security,并且我已经成功地调整了exception,以避免错误的使用类似于:
SecRuleUpdateTargetById 981260 !ARGS:'/^PD-.*/'
但是现在我正面临着请求参数带有密码的情况,该密码可能包含mod_security将标记为误报的所有可能的字符组合。 所以我天真的解决scheme将是禁用所有规则的特定论点,像这样的:
SecRuleUpdateTargetById * !ARGS:'/^PD-.*/'
这样的事情可能吗?
不,这是不可能的。 尽pipe可以基于标签ID一次禁用多个规则,因此所有使用该标签标记的规则都是禁用的,例如:
SecRuleUpdateTargetByTag "OWASP_CRS/WEB_ATTACK/SQL_INJECTION" !ARGS:'/^PD-.*/'
如果一个参数可能会遇到几个不同的规则标记(例如SQL注入和XSS),那么你将不得不放置几个SecRuleUpdateTargetByTagexception。
这也取决于在规则集中一致地指定的标签。 他们大多数在OWASP CRS中,但不知道其他ModSecurity规则集。
在这里看到更多的细节: https : //github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#SecRuleUpdateTargetByTag
您可以同样使用SecRuleUpdateTargetByMsg( https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#SecRuleUpdateTargetByMsg )