图像文件上传安全性

时间:2011-05-12 13:56:22

标签: image security file-upload

我正在为我的网站实施一个项目,允许用户上传图像文件(ai,pdf,jpeg,gif,tiff)。我知道这可能非常危险,但我想知道应该采取什么样的安全检查来确保这些文件不会对我的网站造成任何伤害。

OR

我应该使用Dropbox之类的内容上传我的图片吗?如果我这样做是可以随时获取这些图像,所以我可以在浏览器中将它们显示给用户?

2 个答案:

答案 0 :(得分:3)

图片上传很好,因为你知道你想要什么:图像

第一条规则永远不要信任客户端,所以让用户上传文件(可能你想添加上传大小限制)。

其次,你必须确保图像真的是一个图像,所以

  1. 检查文件的mime类型(不要通过文件扩展名,使用真实的mime类型检查,如file shell命令或相应的库)

  2. 要确保文件正常,请使用GD,ImageMagick等图像库打开并重新处理它,并将其保存到磁盘(请记住,这需要一些资源!)。这也将过滤掉损坏的图像。

  3. 上传的文件通常不会损害网站本身,也会损害下载文件的用户。

答案 1 :(得分:0)

我遇到了一个文件上传我工作的项目的一部分。 一些高级别的建议,以补充雪橇的答案:

mime类型是在文件扩展名的基础上设置的,所以它没有用(因为文件还没有上传到服务器,mime类型只是他的扩展名的'猜测')。

所以解决方案是:

  • 内容检查客户端(在发送http请求之前)
  • 当您通过HTTP获取整个文件时,请先检查服务器端,然后再保留到磁盘。

其他建议:

  • 简单的文件扩展名检查 (通过文件名或mime类型)是 也是基本的安全措施 必须在场。
  • 文件夹权限:不允许执行权限,不允许用户创建新文件夹(因为它可能会创建具有执行权限的子文件夹)。