上传前检查文件内容

时间:2011-12-13 09:21:32

标签: php javascript security upload zip

我必须在上传到服务器之前检查zip / rar文件的内容。

让我解释一下这个场景。

我的网络项目中有两种类型的用户:

1:正常注册用户 2:项目管理员

任何注册用户都可以在我们的项目中创建页面,他们也可以为页面创建Themes

我们其中一位建议使用上传Theme主题包[在Zip/Rar文件中压缩]的功能。

如果是管理员,那就没问题了,没有更多的安全限制。

但我担心普通注册用户的情况。

我的问题是:

假设注册用户上传的主题包中包含一些可能会损害系统的恶意文件[包括PHP文件]。 我知道在上传后检查内容是可行的,但是如果用户在此之前执行了文件会发生什么?

Ex:用户上传主题包:包含some PHP codes & other large files,首先我们的系统将提取主题包的内容:假设大文件的提取需要一些时间,并且已经提取了较小的PHP文件。这样用户就可以先运行PHP文件了。

上面的一个是我的菜鸟,实际上我不了解其他方面。

请帮我弄清楚这个问题。

是否可以安全地上传ZIP文件?

3 个答案:

答案 0 :(得分:2)

您将无法检查此客户端,除非您有某种插件(适用于所有浏览器)为您执行检查/上传。你必须在服务器端处理这个问题。

此外,管理员可以像非管理员一样轻松上传病毒。有些用户甚至不知道他们的机器比棚户区妓院有更多的病毒。

编辑:此外,除非运行该php文件,否则用户在检查之前如何在服务器上执行他们的PHP文件?无论如何,这听起来像是一场灾难。所需要的只是让一些东西漏掉,恶意的用户会破坏你的网站。允许普通人将可执行脚本上传到您的服务器是一个严重的问题。

答案 1 :(得分:2)

将其解压缩到目录中,无法通过网络访问,检查,然后返回到应用的网页文件夹。

假设您的网站位于/ var / www / website目录中,用户内容转至/ var / www / website / user,可通过www.website.com/user/访问:

在/ tmp解压缩创建临时目录,检查,移至/ var / www / website / user

如果您无权访问/ tmp,您可以创建/ var / www / website / tmp并禁止使用您的服务器设置访问它

答案 2 :(得分:0)

您可以创建一个用于放置zip文件并解压缩的文件夹。

并禁用该文件夹的php执行。这可以解决你的问题