我正在經歷我的第一個形式在PHP上傳圖像。是否可以在上傳文件夾中阻止php腳本?
我在網上看過一些文章,說明它可能是危險的,所以有辦法阻止指定文件夾上的腳本?用.htaccess
或php .ini
指令?
我正在經歷我的第一個形式在PHP上傳圖像。是否可以在上傳文件夾中阻止php腳本?
我在網上看過一些文章,說明它可能是危險的,所以有辦法阻止指定文件夾上的腳本?用.htaccess
或php .ini
指令?
最好的方法是確保您的上傳目錄不在您的webroot中。只要網絡服務器具有讀/寫訪問權限,您就可以正常使用 - 不用擔心可執行文件上傳。這被討論了here on stackoverflow。
最好的辦法是在上傳時驗證文件的擴展名。如果它不是jpg/png/gif/etc,請關閉它。只要你的網絡服務器沒有錯誤地將任何文件解釋爲一個PHP文件,那麼採用這種方法你就不會受到傷害,只需很少的頭痛和很簡單的實現。
我認爲,如果你不檢查上傳的文件類型,這可能是危險的,例如, 「黑客」上傳一個php文件,刪除所有的httpdocs文件,或者人們可以上傳到許多或大文件。
只有讓用戶上傳任何他們想要的東西時,它纔是危險的。只允許你決定是安全的,你不需要阻止任何東西。
檢查正在上傳的文件是否具有良性擴展名(.gif,.mp3等) - 並垃圾其他內容。對於額外的sekrit保護,將文件的原始名稱捕獲到數據庫中(以備將來參考),然後對文件名進行加密(並將其保存)。這樣,上傳者就無法通過文件名找到上傳的內容。
這不會是那麼好一種方法來做到這一點。正如我可以創建我想要的並將其另存爲.mp3文件一樣......然而,您的第二個建議非常聰明。 – Joe 2010-01-24 17:16:33
如果使用mp3擴展名將其上傳到服務器,則服務器在再次調用服務器時不會執行它 - 並且使用加密,這種方式無關緊要。 – 2010-01-25 21:13:43
+1對於一個很好的答案...最好的方式(好,至少和在webroot下無法上傳一樣好)可能會完全禁用該目錄下的php。這種解釋如何(足以去查看文檔中的更多細節):http://www.faqts.com/knowledge_base/view.phtml/aid/128/fid/35 – Fredrik 2010-01-24 16:39:56