1

在网页上添加由 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 是否安全?

4

1 回答 1

1

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

如果这是一次攻击,那么 ModSecurity 就可以很好地工作。

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

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

2)修改规则的正则表达式,去掉/etc/部分

3) 将规则动作从拒绝更改为通过

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

最好的,罗纳德

于 2014-05-24T07:13:17.020 回答