图片上传安全性。 GD够吗?我什么时候使用它?

时间:2012-05-01 09:09:13

标签: image security codeigniter gd uploadify

根据Secure User Image Upload Capabilities in PHP,推荐的方法是管理图像上传的安全性是使用GD / ImageMagick / ...复制传入的图像(并使用随机名称设置)。

确定。我有以下问题。

1st。

在我们的页面中,我们可以裁剪图像。所以:

  • 首先,我们下载用户上传的图片,并使用随机名称将其保存在temp中。
  • 然后我们在视图中加载它,以便用户可以裁剪它。
  • 使用GD创建裁剪的图像。

在没有先使用GD进行处理的情况下加载图像会有风险吗?

第二次

用GD足够处理图像吗?我看到了这个答案:Block upload of executable images (PHP) 说不是(与我在主题上看到的第一个链接和其他答案相反)。

谢谢!

PS:使用Codeigniter进行编程。

1 个答案:

答案 0 :(得分:0)

第一

这应该足够好了。确保图像只是暂时可访问并在完成所有操作后立即删除(我可能还会设置一个cron作业来经常清理临时图像目录,但这取决于存储它的位置)。正如您发布的答案中所述,请记住清理名称并确保您已正确设置权限。还要注意空字节注入和目录遍历(再次只是重复你提到的答案)。 然后,我会使用getimagesize检查图像是否有效,以确保它是一个真实的图像,并且是关于它的。

还有客户端html5解决方案,您可以完全避开这个问题,但当然这意味着它不适用于旧版浏览器。 当然,不要相信它所说的内容类型。

第二: 是的我会想到,首先尝试getimagesize,如果你有效,然后用GD处理。您也可以选择将扩展名列入白名单,如果您没有这样做的话。