微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 图像上传安全性 – 使用GD重新处理

我听说处理上传图像的最佳方法是使用GD库“重新处理”它们并保存处理过的图像.见:PHP image upload security check list

我的问题是如何在GD中“重新处理”?这究竟意味着什么?我不太了解GD库,我担心我会搞砸它…

所以,如果有人之前做过这个,你能给我一个例子吗?

(我知道,另一个选择是使用ImageMagick.对于ImageMagick,我在这里找到了答案:Remove EXIF data from JPG using PHP,但我现在不能使用ImgMagick.顺便说一下..删除EXIF数据意味着在这种情况下完全重新创建图像?)
(如果有兴趣的话,我正在使用Zend Framework.)

解决方法:

如果用户上传了JPEG文件,您可以执行以下操作来重新处理它:

$newIm = @imagecreatefromjpeg($_FILES['file']['tmp_name']);
if (!$newIm) {
    // gd Could not create an image from the source
    // most likely, the file was not a valid jpeg image
}

然后,您可以使用imagedestroy()丢弃$newIm图像并使用用户上传文件,或者从GD中保存图像并使用它.保存GD图像可能存在一些问题,因为它不是原始图像.

一个简单的方法是检查图像文件标题(前几个字节)以确保它是正确的;例如,所有JPEG文件都以0xff 0xd8开头.

另请参阅imagecreatefromstring(),您还可以使用getimagesize()对上载的图像执行类似检查.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐