Apache mod_secure,禁用包含“1---”的 cookie 的规则

Apache mod_secure, disable rule for cookie containing "1---"

我正在使用 Apache 2.4.29 并且刚刚更新到最新的 OWASP 规则。 当存在名为 usprivacy 且包含 1--- 的 cookie 时,mod_security 模块 returns 会出现 403 错误。 我怀疑它是 SQL 注入攻击规则之一,但到目前为止我还无法确定是哪一个。我试过:

SecRuleRemoveById 942440 942280 942180 942210 942300 942340 942370

但是当 usprivacy cookie 出现时我仍然收到 403 错误。

您对哪条规则可能导致问题有任何想法,或者这是否是解决问题的正确途径?

检查您的 Apache 错误日志以查看发生了什么(或审核日志,如果您启用了这些日志)。如果 ModSecurity 规则被触发,那么应该有日志行来描述正在发生的事情。

您应该会看到一条描述性摘要消息,例如:

ModSecurity: Warning. Pattern match "^[\\d.:]+$" at REQUEST_HEADERS:Host

正在触发的规则:

[id "960017"]

此外,通常还包含有关导致相关规则匹配的原因的其他有用信息,例如:

[msg "Host header is a numeric IP address"] [data "10.0.100.4"]

使用日志中的信息,您可以编写排除规则来解决问题。正如您提到的,SecRuleRemoveById 是一种编写规则排除的方法,但是这有点生硬(尽管它是排除 ModSecurity 规则的最简单方法)。

有关编写规则排除的不同方式的更多信息,有一个很好的参考教程可用 here