我已经有一段时间没有对我的网站进行任何操作了,最近我将 Ubuntu 从 12.04 升级到了 14.04 LTS,但现在出现了如下错误:
Modsecurity: no action id present
我在网上查看了一下,大多数答案都告诉你在规则中添加 id=1234 或类似的东西,但没有解释为什么或 id 的作用。有人能解释一下吗?
答案1
在 ModSecurity 2.7 中,ID 成为强制要求。我猜您最近升级操作系统时是从之前的版本迁移过来的。听起来您在手动重新安装 ModSecurity 时又回到了旧版本。
id 很有用,因为它可以让你唯一地标识一条规则,原因如下:
- 当规则触发时,在日志文件中唯一地标识该规则。
- 使用 SecRuleRemoveById 关闭规则
- 使用 SecRuleUpdateTargetById 跳过规则的部分处理(例如,忽略规则中正在处理的一个参数)。
ID 必须是唯一的。如果不是,则不是真正的标识符 ;-)
https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#id
答案2
我通过重新安装 Modsecurity 解决了这个问题,然后出现了重复 ID 的问题,我通过确保 Modsecurity 在我的配置文件中只包含一次解决了这个问题。