让用户上传视频和文本文档都有哪些安全问题?
Posted
技术标签:
【中文标题】让用户上传视频和文本文档都有哪些安全问题?【英文标题】:What are the security issues with letting users upload videos and text documents?让用户上传视频和文本文档有哪些安全问题? 【发布时间】:2010-12-06 06:07:06 【问题描述】:我想让用户(即注册帐户的任何人)上传和下载视频和文本文档。我一直在研究有关让用户上传文件的安全问题,但我能找到的关于该主题的所有内容都假设用户只会上传图片。
允许用户上传视频和文本文档是否存在任何安全问题?当用户可以上传视频大小的文件时,安全性是否会变得更加困难?有没有我应该注意的特定文件扩展名?
【问题讨论】:
【参考方案1】:问题是这样的:如果你让用户上传视频、图片和文本文件,他们中的一些人会尝试上传病毒、服务器端脚本和其他恶意代码。然后,此类代码会将您网站的用户暴露在您自己网站的上下文中,这些用户上传的“坏事”。
如果您允许此类上传,则必须非常小心,您只保存您计划的实际类型的文件,而不是查看文件扩展名。您还必须确保将这些文件放置在禁用执行/脚本权限的位置。
病毒检查是必须的 - 但它根本不够。 php 脚本可能根本不会引发病毒警告,但相同的脚本可能会泄露您网站的重要信息,或者如果执行会导致其他不良事件发生。
您必须检查文件的内容 - 切勿依赖客户端报告的扩展名或 MIME 类型。这些很容易被伪造。
【讨论】:
【参考方案2】:从您已禁用服务器端代码执行的位置提供下载。这就是保护自己免受服务器端攻击所需要做的一切。依赖文件扩展名或其他类似的东西都是黑客。
如果您想全面保护您的用户(以及间接保护您的网站),您需要通过合适的病毒扫描程序运行文件。利用视频解码器和此类软件运行任意代码是可能的,并且有现实生活中的例子。但是,如果您开始走这条线,您也可能会争辩说某些文本字符串可能会在某些软件中引发奇怪的行为,这开始变得愚蠢。幸运的是,编写病毒扫描程序的人将为您完成大部分工作。所以:
-
切勿执行上传的内容
如果您觉得有必要,也可以对它们进行病毒扫描。
【讨论】:
【参考方案3】:您可以对上传的每个文件进行病毒检查。如果您查看大多数基于 Web 的电子邮件客户端,您会在上传文件时看到它们由 McWhoever 检查。一般来说,你不应该让他们上传 exe 文件,但检查扩展是一种非常基本(不可靠)的方法。
【讨论】:
【参考方案4】:要真正安全地上传是相当困难的。
有很多事情要检查 - 文件扩展名只是其中的一部分。以下是必须至少检查的几件事:
文件扩展名(正如您已经提到的) 模仿类型 文件大小 取决于用户:也许用 ClamAV 检查上传...【讨论】:
【参考方案5】:在这里回答你的问题是元攻击:
-
坏人上传一个二进制文件到你的
服务器,可能会欺骗您的
通过压缩文件和过滤器
将扩展名更改为 .avi
利用 CGI 脚本中的错误来
从#1解压avi
利用另一个 CGI 中的错误来
从 #2 -> 后门执行文件
已安装
后门访问和rootkit
安装以隐藏所有步骤的证据
1,2,3
当服务器遭到入侵时,通常会发生上述情况。
【讨论】:
以上是关于让用户上传视频和文本文档都有哪些安全问题?的主要内容,如果未能解决你的问题,请参考以下文章