Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.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
Php 允许zip文件上传时要考虑哪些困难/问题?_Php_Pdf_Zip_Uploading - Fatal编程技术网

Php 允许zip文件上传时要考虑哪些困难/问题?

Php 允许zip文件上传时要考虑哪些困难/问题?,php,pdf,zip,uploading,Php,Pdf,Zip,Uploading,我允许将PDF文件上载到我的网站(PHP) 我想提供的能力,也允许.zip文件包含在目录中的PDF文件,所以它更容易为用户简单地压缩一个目录和上传一个文件,而不是上传多个单独的zip文件 对于那些向(PHP)网站提供.zip文件上传功能的人来说,您面临的技术、安全和其他问题是什么?AFAIK,PHP可以非常高效地处理zip文件。我能想到的困难/问题是,在访问文件时,我们需要首先提取zip文件,然后检索实际需要的文件。因此,根据文件本身的大小,提取zip可能会占用额外的服务器时间 在上传过程中,我

我允许将PDF文件上载到我的网站(PHP)

我想提供的能力,也允许.zip文件包含在目录中的PDF文件,所以它更容易为用户简单地压缩一个目录和上传一个文件,而不是上传多个单独的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服务器用户没有特权且沙盒将大大有助于避免此类问题。