我一直在尝试通过将其添加到 conf 文件来禁用 mod_security sql 注入规则
SecRuleRemoveById 981172
SecRuleRemoveById 981243
SecRuleRemoveById 981173
SecRuleRemoveById 981249
SecRuleRemoveById 981318
SecRuleRemoveById 981246
SecRuleRemoveById 981231
但是似乎有更多的规则,有没有我可以禁用 sql 注入规则而不添加每个规则 id?还是我以错误的方式解决这个问题。
我想禁用此功能的原因是因为我正在尝试安装 IPS(论坛)以及我所做的一切,无论是添加用户还是编辑类别,我都会收到由 mod 安全性引起的 403 错误,错误通常说有帖子标题或 cookie 中的模式匹配。
编辑:这是错误之一
Message: Access denied with code 403 (phase 2). Pattern match "(/\\*!?|\\*/|[';]--|--[\\s\\r\\n\\v\\f]|(?:--[^-]*?-)|([^\\-&])#.*?[\\s\\r\\n\\v\\f]|;?\\x00)" at ARGS:core_theme_setting_title_167. [file "/usr/share/modsecurity-crs/activated_rules/modsecurity_crs_41_sql_injection_attacks.conf"] [line "49"] [id "981231"] [rev "2"] [msg "SQL Comment Sequence Detected."] [data "Matched Data: '#'>This found within ARGS:core_theme_setting_title_167: <h4>Mega Footer Links</h4>\x0d\x0a<ul class='footerLinks'>\x0d\x0a\x09<li><a href='http://www.ipsfocus.com'>IPS 4.x themes</a></li>\x0d\x0a\x09<li><a href='#'>This is a link list</a></li>\x0d\x0a\x09<li><a href='#'>This is a longer link inside of the list</a></li>\x0d\x0a\x09<li><a href='#'>This is a link list</a></li>\x0d\x0a</ul>"] [severity "CRITICAL"] [ver "OWASP_CRS/2.2.8"] [maturity "8"] [accuracy "8"] [tag "OWASP_CRS/WEB_ATTACK/SQL_INJECTION"] [tag "WASCTC/WASC-19"] [tag "OWASP_TOP_10/A1"] [tag "OWASP_AppSensor/CIE1"] [tag "PCI/6.5.2"]
执行此操作的正确方法是您一直在做的事情,或者更好的是仅将导致您出现问题的争论列入白名单:
如您所见,这可能需要一些时间才能获得所需的所有白名单。
您当然应该在 DetectionOnly 模式下运行并微调规则,直到您得到很少的(不是?)误报并且可以轻松地切换到阻止模式。看起来您已经在阻止模式下运行,所以我建议您切换回 DetectionOnly,将其保留一周,查看日志以一次性将所有误报的规则列入白名单,然后再重复几次. 这样做比一只一只地追逐你的尾巴要好得多。
如果你真的想关闭所有的 SQL 注入规则(它们很容易过度警告!),你可以不包含这个文件:
根据您的配置文件中 ModSecurity 的设置方式,这可以通过从 activate_rules 目录中删除该文件(或指向它的链接)来完成,因为(通常)该目录中的所有文件都包括在内。
当然,这意味着您没有这些规则的保护以及对您来说有多少问题,只有您可以判断。正如我所说,它们是需要一段时间来微调的嘈杂规则,但 SQL 注入也是最常见和最危险的漏洞利用之一。
或者,您可以完全关闭 ModSecurity。我个人觉得它很方便并且过去一直受到它的保护,但其他人认为像它这样的 WAF 比它们的价值更麻烦。