Apache 2.4 上的 mod_security:我可以禁用特定请求元素的所有规则吗?

Apache 2.4 上的 mod_security:我可以禁用特定请求元素的所有规则吗?

我有一个由 Apache 提供服务的应用程序,该应用程序启用了 mod_security,并且我已经成功调整异常以避免使用如下方法出现误报:

SecRuleUpdateTargetById 981260 !ARGS:'/^PD-.*/'

但现在我面临的情况是请求参数带有密码,该密码可能包含 mod_security 会标记为误报的所有可能的字符组合。因此,我的简单解决方案是禁用该特定参数的所有规则,如下所示:

SecRuleUpdateTargetById * !ARGS:'/^PD-.*/'

这种事可能吗?

答案1

不,这是不可能的。不过,可以根据标签 ID 一次禁用多个规则,这样所有带有该标签的规则都会被禁用,例如:

SecRuleUpdateTargetByTag "OWASP_CRS/WEB_ATTACK/SQL_INJECTION" !ARGS:'/^PD-.*/'

如果一个参数可能违反几种不同的规则标签(例如 SQL 注入和 XSS),那么您将必须设置几种SecRuleUpdateTargetByTag例外情况。

这也取决于规则集中是否一致指定标签。它们大多位于 OWASP CRS 中,但不确定其他 ModSecurity 规则集中是否如此。

请参阅此处了解更多详细信息:https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#SecRuleUpdateTargetByTag

您也可以类似地使用 SecRuleUpdateTargetByMsg 来代替(https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#SecRuleUpdateTargetByMsg

相关内容