处理上传的动画gif以确保安全

时间:2015-01-20 21:34:30

标签: security web-applications image-uploading gif

我们正在开设一个网站,允许动画GIF上传。为确保图像确实是图像,没有恶意软件/病毒/后门/木马或图像数据本身以外的任何其他内容,我们会尝试重新创建原始图像。

然而,当内部有很多帧时,进程本身需要一些时间。有没有其他方法可以确保上传的动画GIF文件不受上述问题的影响?

1 个答案:

答案 0 :(得分:0)

您永远不能100%保证文件不包含恶意软件 - 即使使用您的方法,gif也可能包含一些可能是恶意的代码simply by opening the image in a vulnerable viewer

尽管如此,机会很低,你可以预期在大多数现代操作系统中都会很快修补这些错误。

您可以对上传的文件进行各种检查,但这会缩短处理时间:

  • 检查文件扩展名是否符合预期 - 在上传阶段忽略content-type,因为这可能是欺骗性的。
  • 使用具有最新定义的病毒扫描程序扫描所有上传的文件。
  • 不要将文件存储在可以执行的位置 - 例如不要存储在Web根目录(www.example.com/uploads/image.aspx)。
  • 通过程序或脚本提供文件,该程序或脚本将其从存储中读取为数据,然后将输出流式传输到浏览器。
  • 提供文件时,请确保content-type正确,如果可能,请正确设置文件扩展名。使用Content-Disposition设置浏览器将使用的名称:

    Content-Disposition: attachment; filename="fname.ext"