上传GIF的安全方式

时间:2014-01-29 13:54:06

标签: php image security gd gif

我正在实施图片上传解决方案。

现在一切正常,我开始考虑安全问题。 在对互联网进行了大量研究之后,我发现上传图像最安全的方式就是重新创建它。

为此我使用GD图像编辑器,它获取图像大小并从每一侧调整到-1px。

上升的问题是我无法重新创建GIF图像,因为它变得静态(和丑陋)。

我的问题是,如果有人做了什么,我有什么选择?也许其他一些解决方案可以安全地让用户上传GIF图像?

1 个答案:

答案 0 :(得分:2)

首先也是最重要的是为任何上传的图片分配您自己的文件名和扩展名。由于您的网络服务器决定如何处理您的文件,具体取决于它的扩展名,您应该确定它是'.gif'。 重命名整个文件而不仅仅是它的扩展名确保没有人找到破坏你的扩展安全的方法并注入他自己的扩展名。

永远不要依赖发送的任何mime类型来确定文件类型。 Mime类型可以被操纵并且不可靠。如果您需要检查文件,请使用getimagesize()之类的内容。但是,如果你设置文件名和扩展名,则无需这样做。

http://www.php.net/manual/en/function.getimagesize.php

您还应确保文件大小不大,以避免服务器空间不足。

在上传之前确保登录,并且每个用户只允许合理数量的上传,这也是一个很好的安全措施,但空间不足。

简而言之:

  • 设置文件名和扩展名
  • 不要依赖发送文件名
  • 不要依赖发送的mime类型
  • 检查最大文件大小
  • 确保用户无法发送垃圾邮件