2012-05-23 109 views
0

幾天前我改變了我的網站的主機,現在在新的服務器上我有一個奇怪的錯誤,當我提交一個表單與方法獲取和輸入文本字段服務器內的一個url似乎無法找到頁面。提交表單時的禁止頁面

這裏是我測試它

http://www.oscurodrago.it/tools/testserver.php

即產生404禁止頁

http://www.oscurodrago.it/tools/testserver.php?u=http%3A%2F%2Fexemple.com

那就是URL W/O的URL錯誤的爲例

http://www.oscurodrago.it/tools/testserver.php?u=test

你知道它爲什麼不起作用嗎?

+0

它實際上是一個403禁止。 404提示只意味着服務器無法發送正確的403錯誤頁面,因爲它找不到任何(因此返回一個額外的404)。 – acme

+0

好的是403錯誤,但怎麼可能?頁面被禁止時,參數有一個網址? – oscurodrago

+0

我想這是由於你的apache上的一些mod_security設置,它將URL識別爲無效,因爲它包含無效字符。我不確定您的表單在發佈前是否確實將其正確轉義,因此我建議使用POST來代替(如果這是一個選項)。 – acme

回答

2

我想這是由於你的主機上的一些mod_security設置。他們很可能不喜歡將URL作爲參數傳遞(這可能是跨站腳本漏洞)。

所以你可以要求你的主機不要那麼嚴格(我猜他不會這麼做),或者嘗試用POST而不是GET來提交表單。

0

您可能想檢查文件的CHMOD是644,這是大多數服務器要求的安全性,特別是在運行SuExec或SuPHP時。