我将ModSecurity用于Web服务器并正常工作。但是在某些情况下,它阻止并显示了Access Denied
页。下面显示了读取日志文件后从中获取的不需要的规则ID。
950109 950901 958291 960024 973338 981172 981173 981231 981242 981243 981245 981246 981248 981257 981260 981318 981319 981320
有些文章说这些ID是frequent false positives
。所以我想禁用这些ID。
答案 0 :(得分:1)
这是一种有效的方法,但有点粗糙。 https://netnea.com/apache-tutorials上的教程介绍了详细信息。
此外,您使用的是核心规则集的过时版本。您应该去看看https://coreruleset.org。更新到CRS3,您90%的误报将消失。
答案 1 :(得分:0)
搜索后,我找到了禁用这些规则ID的解决方案。这就是我禁用这些ID的方式。
将此内容添加到/etc/apache2/mods-available/security2.conf
<IfModule mod_security2.c>
SecRuleRemoveById 950109
SecRuleRemoveById 950901
SecRuleRemoveById 958291
SecRuleRemoveById 960024
SecRuleRemoveById 973338
SecRuleRemoveById 981172
SecRuleRemoveById 981173
SecRuleRemoveById 981231
SecRuleRemoveById 981242
SecRuleRemoveById 981243
SecRuleRemoveById 981245
SecRuleRemoveById 981246
SecRuleRemoveById 981248
SecRuleRemoveById 981257
SecRuleRemoveById 981260
SecRuleRemoveById 981318
SecRuleRemoveById 981319
SecRuleRemoveById 981320
</IfModule>
然后重新启动apache。 service apache2 restart
。现在可以正常工作了。
这也可以输入一行。
<IfModule mod_security2.c>
SecRuleRemoveById 950109 950901 958291 960024 973338 981172 981173 981231 981242 981243 981245 981246 981248 981257 981260 981318 981319 981320
</IfModule>