2

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

我想提供允许在目录中包含 PDF 文件的 .zip 文件的功能,这样用户就更容易简单地压缩目录并上传一个文件,而不是单独上传多个 zip 文件。

对于那些为您的 (PHP) 网站提供 .zip 文件上传功能的人,您遇到了哪些技术、安全和其他问题?

4

3 回答 3

1

假设 .zip 最终解压缩,您必须确保客户端的浏览器无法访问它们解压缩的目录(使用 .htaccess 或将其放置在 Web 根目录之外),即使在这种情况下,我也会仍然监视解压缩的 .zip 的内容,以确保它们不包含任何可能证明有害的内容(php 或服务器运行的其他文件,html 欺骗)。

另一个问题是我猜upload_max_filesizephp.ini 中的设置,在开始编码之前,您可以确保它可以设置得足够大以满足您的目的。

编辑:还阅读萨诺德的回答;)

于 2011-04-05T07:19:34.380 回答
1

小心解压 zip 的方式,您会发现自己消耗的资源比您预期的要多得多。也许setrlimit(2)在拆包之前进行一些资源限制是明智的。

unzip(1)实用程序内置了几个不错的安全功能;命令行-^选项关闭控制字符过滤,因此请确保您不要触摸它:) 并且-:命令行选项允许使用愚蠢的路径名,例如../../../../etc/passwd. 确保您至少使用 5.50 版本,以便默认情况下禁止使用那些愚蠢的路径名。(并且不要使用该命令行选项。我提到这些选项只是为了让您可以更轻松地找到它们的文档。:)

如果您使用 API,请确保它具有防止这两种愚蠢文件名的选项。

于 2011-04-05T07:21:37.227 回答
0

AFAIK,php 可以非常有效地处理 zip 文件。我能想到的困难/问题是,在访问文件时,我们需要先提取 zip,然后检索实际需要的文件。由于这个原因,提取 zip 可能会消耗额外的服务器时间,具体取决于文件本身的大小。

其中,在上传过程中,我认为在zip类型上没有特别强调的任何困难或问题。

于 2011-04-05T07:12:09.777 回答