如何识别REQUEST_BODY中是否有任何附件用于创建ModSecurity排除规则

问题描述

我们正在使用 ModSecurity CRS 3.0.2 并且需要排除规则 930110,如果它包含模式“../”和“..\”(路径遍历攻击),则该规则会阻止请求。如果我们在提交请求时附加一个文件,这种模式会被频繁匹配并且请求被阻止,这是我们想要避免的。

我可以使用以下方法排除 REQUEST_BODY:
SecruleUpdateTargetById 930110 "!REQUEST_BODY"

有没有办法只排除附件并扫描 REQUEST_BODY 的其余部分?
如果没有,我们是否可以识别 REQUEST_BODY 是否包含附件并仅在这种情况下排除 REQUEST_BODY。我尝试了如下字符串搜索,但它不起作用。 'filename' 是 REQUEST_BODY 中的一个示例字符串,每当附加文件时我都会看到。

Secrule REQUEST_BODY "@包含文件名"
"id:1001,phase:1,pass,nolog,
ctl:ruleRemoveTargetById=930110;REQUEST_BODY"

REQUEST_URI 过滤器虽然有效
Secrule REQUEST_URI "@beginsWith /process"
"id:1001,
ctl:ruleRemoveTargetById=930110;REQUEST_BODY"

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...