ModSecurity:破坏性操作只能由链式启动器规则指定

时间:2016-08-02 09:18:02

标签: mod-security mod-security2

我想仅在文件驻留在特定目录上时才使用ModSecurity修改响应内容。我实施了这样的规则:

SecRule REQUEST_URI "@contains /admin/" "phase:2,chain,t:none,t:urlDecode,t:lowercase,t:normalizePath,deny,log"

SecRule STREAM_OUTPUT_BODY "@rsub s/test/replaced_string/" "phase:4,t:none,log,pass,msg:'String replaced'"

但是在写完这条规则后,当我重新启动apache2时,modsecurity给了我一个错误:ModSecurity: Disruptive actions can only be specified by chain starter rules。我试图以其他方式编写规则,但它没有帮助。

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:2)

你的规则毫无意义。

如果它在管理区域中拒绝它并查看下一个规则(链),您允许它通过!这是什么?阻止还是通过?

此外,您无法从两个不同阶段(第一个规则中的第二阶段和第二个规则中的阶段4)链接规则。

我建议你可能想要这样的东西:

SecRule REQUEST_URI "@contains /admin/" "phase:4,chain,t:none,t:urlDecode,t:lowercase,t:normalizePath,pass,log"
    SecRule STREAM_OUTPUT_BODY "@rsub s/test/replaced_string/" "t:none,log,msg:'String replaced'"