2012-06-25 100 views
4

當我通過其他頁面發佈方法發佈一些htmljavascript混合數據時,我的頁面顯示錯誤禁止訪問錯誤。關閉共享主機環境中頁面的mod_security

但是當我直接打開該頁面時,它顯示正確無誤。

我知道這是服務器安全相關的問題,當我發佈數據。

正如我搜索我找到了解決方案關閉mod_security中。 htaccess文件。

但我想這樣做只是爲了這個網頁而不是我的完整網站。

我的軟管環境是shared.but我可以編輯我的。 htaccess文件。

回答

5

看一看mod_security and .htaccess tricks。有很多不同的方法可以啓用或禁用mod_sceurity。最簡單的可能是將MODSEC_ENABLE環境變量設置爲OnOff。您可以使用SetEnvIf來匹配許多事情,包括Request_URI

SetEnvIf Request_URI your_page\.php$ MODSEC_ENABLE=Off 

或許多網頁:

SetEnvIf Request_URI ^/directory/file.*\.php$ MODSEC_ENABLE=Off 

或者,如果你需要做更復雜的東西,像對一個查詢匹配字符串,using mod_rewrite

RewriteEngine On 
RewriteCond %{QUERY_STRING} example_param=example_value [NC] 
RewriteRule ^path/your_file\.php$ - [E=MODSEC_ENABLE:Off] 
0

您是否已啓用OWASP核心規則集?檢查你的Apache錯誤日誌,看看哪個規則匹配。您可能會發現它也阻止了其他網頁上的一些合法用戶。與您的託管服務提供商談談他們正在使用的規則集以及他們在做什麼關於誤報。


爲您解決眼前的問題,您可以防止一個URI被阻止通過添加新SecRule(你可以在你的.htaccess文件做到這一點。

SecRule REQUEST_URI "/your/uri" "phase:1,pass" 

爲了限制這種POST請求,你可以使用REQUEST_LINE

SecRule REQUEST_LINE "POST /your/uri" "phase:1,pass" 

根據什麼規則匹配,目前阻擋的要求,可能必須CH那些到phase:2甚至添加第二個相同的規則與phase:2

相關問題