ModSecurity:apache中的代码406拒绝访问

时间:2014-05-24 06:32:56

标签: php mod-security2

在网页上添加由PHP开发的代码时,会产生以下错误。

[error] [client 1192.168.0.1] ModSecurity: Access denied With code 406(phase 2). Pattern match "(?:\\b(?:\\.(?:ht(?:access|passwd|group)|www_?acl)|global\\\.asa|httpd\\\.conf|boot\\\\.ini)\\\\b|\\\\/etc\\\\/|\\\\/root\\\\/|\\\\/public_html\\\\/)" at ARGS:content. [file "/usr/local/apache/conf/2.user.conf"] [line "134"] [id "1234123401"] [msg "Remote File Access Attempt"] [data "/etc/"] [severity "CRITICAL"] [tag "WEB_ATTACK/FILE_INJECTION"] [hostname "mydomain.com"] [uri "/admin/preview.php"] [unique_id "U36x7XyZeYcAAFVUXLsAAADC"]

我找到了以下文件中的代码:

vim /usr/local/apache/conf/modsec2.user.conf
"phase:2,capture,t:none,t:htmlEntityDecode,t:lowercase,ctl:auditLogParts=+E,deny,log,auditlog,msg:'Remote File Access Attempt',id:'1234123401',tag:'WEB_ATTACK/FILE_INJECTION',logdata:'%{TX.0}',severity:'2'"

是否安全可能会禁用mod_security?

1 个答案:

答案 0 :(得分:1)

正如我所看到的那样,问题是在“/admin/preview.php”请求的请求参数之一中使用了字符串“/ etc /”,这看起来像是攻击,因此规则与id 1234123401阻止了该请求。

如果这是一次攻击,那么ModSecurity工作得很好。

如果这是一个需要通过ModSecurity的合法请求,可以

1)更改请求,使其不包含字符串“/ etc /”作为参数值 - 也许PHP脚本必须适应此

2)修改规则的正则表达式并删除/ etc / part

3)将规则操作从拒绝更改为传递

我不会选择2& 3,因为你会降低安全级别。相反,我会尝试使用选项一。

最佳, 罗纳德