0

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

行。我有以下问题。

第一个。

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

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

在没有先用 GD 处理的情况下加载图像是否有风险?

第二

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

谢谢!

PS:使用 Codeigniter 进行编程。

4

1 回答 1

0

第一个:

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

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

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

于 2012-05-01T10:38:50.187 回答