url/arg 的 Mod_security 规则例外

问题描述 投票:0回答:1

我们网站上的图像标记了 modsec 规则,我正在尝试仅针对该事件添加规则例外。标记字符串开头的数字是会话编号,因此我在我的规则中添加了一个正则表达式。

我尝试过各种排列,但没有任何乐趣,希望得到一些建议。

阻止的 URI: https://www.website.com/application/login?0--preLoginHeaderPanel-companyLogo

Modsec 日志片段: [文件“/usr/share/modsecurity-crs/rules/REQUEST-942-APPLICATION-ATTACK-SQLI.conf”] [行“65”] [id“942100”] [msg“通过libinjection检测到SQL注入攻击” "] [data "匹配数据:在 ARGS_NAME:0--preLoginHeaderPanel-companyLogo: 0--preLoginHeaderPanel-companyLogo 中找到 1c"]

尝试的异常(在 apache.conf 内): SecRuleUpdateTargetById 942100 !ARGS_NAMES:'[0-9][0-9]?--preLoginHeaderPanel-companyLogo'

mod-security
1个回答
1
投票

核心规则集值班开发人员在这里。规则 942100 是我们的“LibInjection”规则之一。 LibInjection 非常不透明(它是第三方库/运算符),因此您认为规则排除是解决此问题的方法是正确的。

在此上下文中正则表达式的使用遵循特定的形式。它们需要夹在正斜杠内,如下所示:

SecRuleUpdateTargetById 942100 "!ARGS_NAMES:/^[0-9][0-9]?--preLoginHeaderPanel-companyLogo/"

我在正则表达式的开头添加了一个起始锚点。您可能想考虑最后锚定是否也是一个好主意。

有关更多示例和信息,我们在这里有一些很棒的文档:https://coreruleset.org/docs/concepts/false_positives_tuning/#support-for-regular-expressions

© www.soinside.com 2019 - 2024. All rights reserved.