2010-08-21 36 views
0

我正在製作一個使用Zend Framework的PHP圖片上傳器,它將圖片上傳到公共目錄,供人們自由訪問。如何製作安全的php圖片上傳器?

我迄今實施這些措施的安全性: - 文件大小驗證 - 擴展驗證 - Mime類型驗證 - 一旦成功確認文件被重命名與在公共文件夾中的形象延伸,即/圖片/上傳/ ...

這是否足夠安全?無法運行它通過一些防病毒腳本你可以(這是必需的)?

回答

0

文件擴展名和MIME類型可以很容易僞造。使用getimagesize()來查看它是否真的是一個圖像。

+4

這是錯誤的解決方案國際海事組織。有可能創建一個完全有效的GIF圖像,這也是一個完美有效的PHP腳本。你應該拋棄無效的圖像文件,只是因爲它們是無效的,但爲了安全起見,你應該依靠適當的服務器配置。不要讓服務器在公共目錄中執行文件。另外,爲上傳的圖像執行正確的文件擴展名(不允許圖像名爲'image.gif.php'),並確保只有'.php'文件被PHP處理(大多數服務器已經正確設置)。 – 2010-08-21 08:30:40

+1

有關上述漏洞的更多信息,請參閱此鏈接:http://www.phpclasses.org/blog/post/67-PHP-security-exploit-with-GIF-images.html – 2010-08-21 08:32:25

+0

感謝您的信息,我沒有意識到這種利用。 – Maerlyn 2010-08-21 08:54:37

0

你不應該保存上傳到公共文件夾! 你應該將它們保存在一個私人目錄中,並使用視圖助手爲你加載圖像