让用户上传视频和文本文档有哪些安全问题?

时间:2010-12-06 06:07:06

标签: security file-upload

我想让用户(即注册帐户的任何人)上传和下载视频和文本文档。我一直在研究有关让用户上传文件的安全问题,但我在该主题上找到的所有内容都假设用户只会上传图片。

是否存在任何特定于让用户上传视频和文本文档的安全问题?当用户可以上传视频大小的文件时,安全性是否更加困难?我应该注意哪些特定的文件扩展名?

5 个答案:

答案 0 :(得分:1)

问题在于:如果您让用户上传视频,图片和文本文件,其中一些会尝试上传病毒,服务器端脚本和其他恶意代码。这样的代码将使您网站的用户在您自己网站的上下文中暴露用户上传的“坏事”。

如果您允许此类上传,则必须非常小心,您只保存您计划的实际类型的文件 - 而不是通过查看文件扩展名。您还必须确保将这些文件放置在禁用执行/脚本权限的位置。

病毒检查是必须的 - 但它根本不够。 PHP脚本可能根本不会引发病毒警告,但同一个脚本可能会泄露您网站的重要信息,或者在执行时导致其他不良事件发生。

您必须检查文件的内容 - 从不依赖于客户端报告的扩展名或MIME类型。那些很容易被伪造。

答案 1 :(得分:1)

从您已禁用服务器端代码执行的位置提供下载。这就是保护自己免受服务器端攻击所需要做的全部工作。依赖文件扩展名或其他类似的东西都是黑客攻击。

如果您想要完全保护您的用户(以及间接您的网站),您还需要通过合适的病毒扫描程序运行这些文件。有可能,并且有这样做的现实例子,利用视频解码器和这样的软件来运行任意代码。但是如果你开始沿着这条线走下去,你也可以争辩说某些文本字符串可能会在某些软件中引发奇怪的行为,并开始变得愚蠢。幸运的是,编写病毒扫描程序的人将为您完成大部分工作。所以:

  1. 永远不要执行上传的内容
  2. 如果您认为需要,病毒也会扫描它们。

答案 2 :(得分:0)

您可以对每个上传的文件进行病毒检查。如果您查看大多数基于Web的电子邮件客户端,您将看到上传文件的时间由McWhoever检查。通常你不应该让他们上传exe文件,但检查扩展名是一种非常基本的(不可靠的)方法。

答案 3 :(得分:0)

上传真的很安全很难。

有很多事情需要检查 - 文件扩展名只是其中的一部分。以下是一些必须至少检查过的事情:

  • 文件扩展名(正如您已经提到的那样)
  • 的mimetype
  • 文件大小
  • 取决于用户:也许用ClamAV检查上传...

答案 4 :(得分:0)

在这里回答你的问题是一次元攻击:

  1. 坏人将二进制文件上传到你的 服务器,也许欺骗你的 通过压缩文件和过滤器 将扩展名更改为.avi
  2. 利用CGI脚本中的错误 从#1
  3. 解压缩avi
  4. 利用另一个CGI中的bug来 从#2 - >执行文件后门 安装
  5. 后门访问和rootkit 安装以隐藏所有步骤的证据 1,2,3
  6. 上述内容的一些变化是服务器遭到入侵时通常会发生的情况。