Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 允许用户上传视频和文本文档有哪些安全问题?_Security_File Upload - Fatal编程技术网

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

Security 允许用户上传视频和文本文档有哪些安全问题?,security,file-upload,Security,File Upload,我想让用户(即注册帐户的任何人)上传和下载视频和文本文档。我一直在研究允许用户上传文件的安全问题,但我在这个主题上找到的所有东西都假设用户只上传图像 允许用户上传视频和文本文档是否存在特定的安全问题?当用户可以上传视频大小的文件时,安全性会更困难吗?是否有我应该注意的特定文件扩展名?您可以对上载的每个文件进行病毒检查。如果你查看大多数基于web的电子邮件客户端,你会看到当你上传文件时,他们都会被MCP检查。一般来说,你不应该让他们上传exe文件,但检查扩展名是一种非常基本(不可靠)的方法。要让上

我想让用户(即注册帐户的任何人)上传和下载视频和文本文档。我一直在研究允许用户上传文件的安全问题,但我在这个主题上找到的所有东西都假设用户只上传图像


允许用户上传视频和文本文档是否存在特定的安全问题?当用户可以上传视频大小的文件时,安全性会更困难吗?是否有我应该注意的特定文件扩展名?

您可以对上载的每个文件进行病毒检查。如果你查看大多数基于web的电子邮件客户端,你会看到当你上传文件时,他们都会被MCP检查。一般来说,你不应该让他们上传exe文件,但检查扩展名是一种非常基本(不可靠)的方法。

要让上传真正安全是相当困难的

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

  • 文件扩展名(正如您已经提到的)
  • 模版
  • 文件大小
  • 取决于用户:也许可以使用ClamAV检查上传

问题在于:如果你让用户上传视频、图像和文本文件,其中一些人会试图上传病毒、服务器端脚本和其他恶意代码。这样的代码会让你的站点用户暴露在那些用户上传的、在你自己站点上下文中的“坏东西”面前

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

病毒检查是必须的,但这远远不够。PHP脚本可能根本不会引发病毒警告,但同样的脚本可能会泄露站点的重要信息,或者在执行时导致其他不好的事情发生


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

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

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

  • 永远不要执行上传的内容
  • 如果你觉得有必要,也可以进行病毒扫描

  • 要回答您的问题,这里有一个元攻击:

  • 坏家伙将二进制文件上传到你的 服务器,也许是在欺骗你的 通过压缩文件和 将扩展名更改为.avi
  • 利用CGI脚本中的漏洞来 从#1解压avi
  • 利用另一个CGI中的bug来 从#2->后门执行文件 安装
  • 后门访问和rootkit 安装以隐藏所有步骤的证据 1,2,3
  • 当服务器被破坏时,通常会发生上述情况的一些变化