我們都知道chmod 777不是讓我們的上傳腳本正常工作的最佳方式。所以我在想什麼是使用它時最好的解決方案。上傳文件夾安全解決方案
我認爲用戶上傳文件「picture.jpg」的時候,我可以將其重命名爲「MD5(用戶名畫面-1.JPG)」,並顯示出它的網頁上爲<img src="files.php?img=username-picture-1.jpg">
。
然後在此files.php文件看起來像
<?php
$file = md5($_GET['img']);
header('Content-Type: image/jpeg');
header('Content-Length: ' . filesize($file));
echo file_get_contents($file);
?>
這樣,用戶就不會知道他已經上傳的文件的文件名,這麼說,他將無法執行它。我對嗎?
而且我想我會有一些其他檢查來處理像MIME類型和其他東西的上傳。我只想知道這是否會阻止用戶執行他上傳的文件。
這是一種令人討厭的問題,以便弄清楚請求了哪個文件。但是大多數代碼是開源的,所以你不能依靠默默無聞的安全性。 還有另一個人喜歡Facebook的原因不這樣做。您已將您的網站轉換爲每頁1個PHP執行1個(每頁1個)。在一個畫廊可能是30倍的交通。 你不應該需要運行'chmod 777'無論如何,該文件應僅是網絡服務器爲運行(這不應該是root)用戶是可執行的。 –
這怎麼可能完成?我沒有ssh訪問權限! –