ModSecurity给出了通用SQL注入保护错误

时间:2017-03-11 09:07:47

标签: php mysql cpanel sql-injection mod-security

我的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。+ = )"在ARGS:描述。 [file" /usr/local/apache/conf/modsec2.user.conf"] [line" 254"] [id" 300015"] [rev&# 34; 1"] [msg"通用SQL注入保护"] [严重性"关键"] [主机名""] [uri" / app / marketwatch / edit-listing.php"] [unique_id" WMO50kPhgfkAAHqQRtMAAACP"]

通常会导致SQL注入错误以及如何摆脱此错误?

1 个答案:

答案 0 :(得分:1)

使用这篇文章解决它: https://othermachines.com/blog/drupal-modsec-and-post-wouldnt-save

因此,mod_security出现了误报。我不知道它以某种方式使用modsec规则id 300015而不是像往常一样300016并且使用了虚假的安全规则。您可以在[id "300015"]中注意到该ID。所以我在文件/usr/local/apache/conf/modsec2/whitelist.conf中编辑了modsec白名单并添加了这个:

# 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,这样它才会生效。

<强>更新

不知何故配置位置更改为/etc/apache2/conf.d/modsec2/whitelist.conf