1
我希望我的網站具有用於上傳圖像的功能,但我想安全地進行操作。也就是說,我想剝離EXIF數據和可能存在於其圖像中的任何惡意代碼。我正在考慮一種涉及到直接操作文件的方法,但是讓我感到震驚的是,將它們提供給BMP的圖像轉換成原始格式會更有意義嗎?它會遭受代際損失,但我相信這將符合我的項目要求。 BMP不包含EXIF,是嗎?重新處理應該去除任何惡意內容。使用PHP上傳安全圖像
我希望我的網站具有用於上傳圖像的功能,但我想安全地進行操作。也就是說,我想剝離EXIF數據和可能存在於其圖像中的任何惡意代碼。我正在考慮一種涉及到直接操作文件的方法,但是讓我感到震驚的是,將它們提供給BMP的圖像轉換成原始格式會更有意義嗎?它會遭受代際損失,但我相信這將符合我的項目要求。 BMP不包含EXIF,是嗎?重新處理應該去除任何惡意內容。使用PHP上傳安全圖像
它甚至不需要是BMP:您可以使用PHP的GD函數,使用imagecreatefrom[xyz]
打開圖像,將其複製並以原始格式重新寫回。
這應該是相當不錯的,除了遠程(可以忽略)的可能性,當然GD的一天就會發現漏洞。
限制和告誡我能想到的:與透明度
圖像可能是一個問題,尤其是透明的GIF圖像可能會需要特別處理(新形象等分配透明色,不確定)
GIF動畫將被消滅這種方式,GD對付不了他們
此方法將通過PHP的限制」內存限制(你至少需要{圖像寬度}× {圖像高度}×3個字節的調整操作)
更奇特的子格式,如漸進JPG,CMYK JPG可能會引起麻煩,但是這好吧國際海事組織 - 後者無論如何都無法在IE中顯示
好的呼叫!這些都是我可以忍受的警告。謝謝! – directedition 2010-06-06 13:59:33