我必须在上传到服务器之前检查zip / rar文件的内容。
让我解释一下这个场景。
我的网络项目中有两种类型的用户:
1:正常注册用户 2:项目管理员
任何注册用户都可以在我们的项目中创建页面,他们也可以为页面创建Themes
。
我们其中一位建议使用上传Theme
主题包[在Zip/Rar
文件中压缩]的功能。
如果是管理员,那就没问题了,没有更多的安全限制。
但我担心普通注册用户的情况。
我的问题是:
假设注册用户上传的主题包中包含一些可能会损害系统的恶意文件[包括PHP文件]。 我知道在上传后检查内容是可行的,但是如果用户在此之前执行了文件会发生什么?
Ex:用户上传主题包:包含some PHP codes & other large files
,首先我们的系统将提取主题包的内容:假设大文件的提取需要一些时间,并且已经提取了较小的PHP文件。这样用户就可以先运行PHP文件了。
上面的一个是我的菜鸟,实际上我不了解其他方面。
请帮我弄清楚这个问题。
是否可以安全地上传ZIP文件?
答案 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执行。这可以解决你的问题