我的 Cpanel 服务器上出现此错误。并不是每次更新都会发生这种情况,只是某些 SQL 会发生这种情况。
[Sat Mar 11 03:48:18.409435 2017] [:error] [pid 31376:tid 140202228020992] [client 180.253.119.171] ModSecurity:访问被拒绝,代码 500(第 2 阶段)。模式匹配“((alter|create|drop)[[:space:]]+(column|database|procedure|table)|delete[[:space:]]+from|update.+set.+=)” at ARGS:描述。 [文件“/usr/local/apache/conf/modsec2.user.conf”] [行“254”] [id“300015”] [rev“1”] [msg“通用SQL注入保护”] [严重性“CRITICAL” "] [主机名 ""] [uri "/app/marketwatch/edit-listing.php"] [unique_id "WMO50kPhgfkAAHqQRtMAAACP"]
什么通常会导致 SQL 注入错误以及如何消除此错误?
使用这篇文章解决它:https://othermachines.com/blog/drupal-modsec-and-post-wouldnt-save https://othermachines.com/blog/drupal-modsec-and-post-wouldnt-save
因此,mod_security 出现误报。我不知道它以某种方式使用 modsec 规则 id 300015 而不是像往常一样使用 300016 并陷入错误的安全规则。您可以注意到 id[id "300015"]
。所以我在文件中编辑了 modsec 白名单/usr/local/apache/conf/modsec2/whitelist.conf
并添加以下内容:
# Disable generic SQL injection rules globally
# for Drupal content admin
<LocationMatch /node/[0-9]+/edit> #might vary depending your code
<IfModule mod_security2.c> # This is the important part
SecRuleRemoveById 300015
</IfModule>
</LocationMatch>
<LocationMatch /admin>
<IfModule mod_security2.c>
SecRuleRemoveById 300015
</IfModule>
</LocationMatch>
不要忘记之后重新启动 Apache,这样它才会生效。
UPDATE
不知何故,配置位置更改为/etc/apache2/conf.d/modsec2/whitelist.conf
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)