Php 允许zip文件上传时要考虑哪些困难/问题?
我允许将PDF文件上载到我的网站(PHP) 我想提供的能力,也允许.zip文件包含在目录中的PDF文件,所以它更容易为用户简单地压缩一个目录和上传一个文件,而不是上传多个单独的zip文件Php 允许zip文件上传时要考虑哪些困难/问题?,php,pdf,zip,uploading,Php,Pdf,Zip,Uploading,我允许将PDF文件上载到我的网站(PHP) 我想提供的能力,也允许.zip文件包含在目录中的PDF文件,所以它更容易为用户简单地压缩一个目录和上传一个文件,而不是上传多个单独的zip文件 对于那些向(PHP)网站提供.zip文件上传功能的人来说,您面临的技术、安全和其他问题是什么?AFAIK,PHP可以非常高效地处理zip文件。我能想到的困难/问题是,在访问文件时,我们需要首先提取zip文件,然后检索实际需要的文件。因此,根据文件本身的大小,提取zip可能会占用额外的服务器时间 在上传过程中,我
对于那些向(PHP)网站提供.zip文件上传功能的人来说,您面临的技术、安全和其他问题是什么?AFAIK,PHP可以非常高效地处理zip文件。我能想到的困难/问题是,在访问文件时,我们需要首先提取zip文件,然后检索实际需要的文件。因此,根据文件本身的大小,提取zip可能会占用额外的服务器时间
在上传过程中,我不认为在
zip
类型上存在任何困难或问题。假设.zip最终被解压,您必须确保客户端浏览器无法访问他们解压的目录(使用.htaccess或将其放在web根目录之外),即使在这种情况下,我仍然会监视unpackage.zip的内容,以确保它们不包含任何可能被证明有害的内容(php或服务器运行的其他文件,html欺骗)
另一个问题是我猜php.ini中设置的upload\u max\u filesize
,您可以确保在开始编码之前将其设置得足够大,以满足您的需要
编辑:也读;) ,您可能会发现自己消耗的资源远远超出预期。也许在解包之前设置一些资源限制是明智的
unzip(1)
实用程序内置了几个不错的安全功能;-^
命令行选项关闭控制字符过滤,因此请确保不要触碰此:)并且-:
命令行选项允许像。/../../../etc/passwd这样的愚蠢路径名。确保您的版本至少为5.50,以便默认情况下禁止使用这些愚蠢的路径名。(不要使用命令行选项。我提到这些选项只是为了让您更容易找到它们的文档。)
如果您使用API,请确保它具有防止这两种愚蠢文件名的选项。如果您可以使用ClamAV,那么如果您希望对上传的文件进行病毒检查,还有一些(对于PHP也是如此)。不要忘了zip炸弹。他们非常狡猾。它们非常小,但是如果你试图提取它们,你就会破坏你的服务器,因为提取需要一些TB。所以,如果你提取它们,实际上你需要某种防病毒检查。如果您只保存它们,则不会发生任何事情。确保您的web服务器用户没有特权且沙盒将大大有助于避免此类问题。