我開發了一個php腳本來替換當前的腳本,這將會對各個市場/國家有很大的影響。 其他人之間的腳本提供照片上傳功能。PHP圖像上傳安全方法
經過大量的關於這個問題的閱讀後,我遵循了下面描述的方法。 我將非常感謝您對其安全性的評論。
- 該照片上傳到網站根外的私人777文件夾中。
- 執行白名單擴展名檢查(只允許jpgs,gifs,pngs)其他所有內容都將被刪除。
- 使用getimagesize檢查最小 - 最大尺寸和照片有效性。
- 檢查MIME類型和文件擴展名匹配。
- 將上傳的照片調整爲標準尺寸(使用imagecopyresampled)。
- 將創建的文件保存爲jpg。
- 刪除原始文件。
- 用新的(不是隨機的名字)保存照片ie img51244.jpg。
- 根據不可預測的算法將新照片移動到公用文件夾的變量子目錄(777權限)。即,
img10000.jpg
將被存儲在photos/a/f/0/img10000.jpg
而img10001.jpg
將被存儲在photos/0/9/3/img10001.jpg
。這是由於其他原因(使用靜態內容服務的子域或使用CDN)完成的。
該腳本將在Linux專用服務器上運行。
這裏沒有東西跳出來。除了文件夾的777權限 - 據我瞭解,如果它有777權限,它不是私有的。但據我所知,只有當你的服務器遭到入侵時,這纔會真正起作用(這至少不會影響我的腳本) – jammypeach
777聽起來並不安全。可能與http://stackoverflow.com/questions/3644138/secure-user-image-upload-capabilities-in-php – ajreal
相關我聽起來很不錯,除非是非常自由的權限。也許他們可能會有所限制?否則,這將盡我所能想到的一切,包括刪除EXIF數據 –