2010-06-06 113 views
1

我希望我的网站具有用于上传图像的功能,但我想安全地进行操作。也就是说,我想剥离EXIF数据和可能存在于其图像中的任何恶意代码。我正在考虑一种涉及到直接操作文件的方法,但是让我感到震惊的是,将它们提供给BMP的图像转换成原始格式会更有意义吗?它会遭受代际损失,但我相信这将符合我的项目要求。 BMP不包含EXIF,是吗?重新处理应该去除任何恶意内容。使用PHP上传安全图像

回答

3

它甚至不需要是BMP:您可以使用PHP的GD函数,使用imagecreatefrom[xyz]打开图像,将其复制并以原始格式重新写回。

这应该是相当不错的,除了远程(可以忽略)的可能性,当然GD的一天就会发现漏洞。

限制和告诫我能想到的:与透明度

  • 图像可能是一个问题,尤其是透明的GIF图像可能会需要特别处理(新形象等分配透明色,不确定)

  • GIF动画将被消灭这种方式,GD对付不了他们

  • 此方法将通过PHP的限制”内存限制(你至少需要{图像宽度}× {图像高度}×3个字节的调整操作)

  • 更奇特的子格式,如渐进JPG,CMYK JPG可能会引起麻烦,但是这好吧国际海事组织 - 后者无论如何都无法在IE中显示

+0

好的呼叫!这些都是我可以忍受的警告。谢谢! – directedition 2010-06-06 13:59:33