2012-10-17 48 views
7

我有一種情況,我打開基於$ _SERVER ['REMOTE_USER']變量的文件。我不認爲這是可欺騙的,但只是想證實。我不想讓自己容易受到任意文件的讀取:

<? 
     $user = $_SERVER['REMOTE_USER']; 
     $fp = fopen("./$user.png","r"); 
    ?> 

回答

4

是的,那個用戶名是遠程用戶指定的。

您還需要驗證密碼。如果你的服務器驗證了密碼,而不是你的應用程序,那麼你可能沒問題。

+0

Web服務器通常設置REMOTE_USER,而不是客戶端... –

+0

@MichaelBerkowski,是的,讓我澄清一下...... $ _SERVER中的任何內容都來自服務器,但是在REMOTE_USER鍵中顯示的內容直接來自爲認證提供的客戶端信息。 – Brad

+2

是的,但服務器不會在沒有成功驗證的情況下填充REMOTE_USER,所以在沒有其他安全失敗的情況下不能任意填充。 –