2011-03-03 103 views
2

我想有一天,如果有人在保護自己的網頁是這樣的:PHP可能的頭重定向攻擊?

if(!$logged_in) 
    { 
     header("Location:http://mysite/login.php"); 
    } 

    // protected content here 

有沒有辦法忽略HTTP標頭重定向瀏覽器級,然後顯示它後面的受保護的內容?

+2

你應該在這一點上放棄處理......反正沒必要取,如果您永遠不會向用戶顯示數據,則可以收縮並顯示數據。 – delnan 2011-03-03 18:31:21

回答

7

是的,因爲使用header()函數僅僅設置了一個頭。服務器將繼續運行PHP腳本的其餘部分,使受保護內容

你要做到這一點,而不是

if(!$logged_in) 
    { 
     header("Location:http://mysite/login.php"); 
     exit(); 
    } 
0

那麼,如果你輸出的數據和你的用戶忽略頭重定向(非標準瀏覽器) - 是的。

1

是的。

任何標題都可以忽略。

您應該在重定向用戶後立即關閉頁面exit()。

1

不知道,但建議的過程是遵循與行頭:

if(!$logged_in) 
    { 
     header("Location:http://mysite/login.php"); 
exit(); 
    }