2014-05-24 43 views
1

以下錯誤是在網頁上添加由PHP開發的代碼時發佈的錯誤。ModSecurity:拒絕訪問apache中的代碼406

[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

正如我所看到的那樣,問題是在請求的一個請求參數「/admin/preview.php」中使用了字符串「/ etc /」,這看起來像是攻擊,因此規則ID 1234123401阻止了請求。

如果這是一次比ModSecurity更好的攻擊。

如果這是一個需要經過ModSecurity的人能

1)更改請求,以便它不包含字符串合法的請求「的/ etc /」作爲參數值 - 也許是PHP腳本有必須適應這種

2)修改規則的正則表達式,並刪除在/ etc /一部分

3)改變從拒絕規則操作來傳遞

我不會選擇2去210 3,因爲你會降低安全級別。相反,我會嘗試去選擇一個。

最好的, Ronald