【发布时间】:2012-08-24 18:56:21
【问题描述】:
我正在尝试实现一个用户系统(php、apache),用户可以在其中上传多个文件并下载它们的压缩版本。 (或上传压缩文件并下载未压缩文件)。
问题:压缩/解压缩这些未知文件是否有风险? 换句话说,unix/php zip/unzip 操作是否仅将文件视为文本,还是可以执行某些操作?
这个问题与所有压缩方法有关,zip 只是一个例子。
编辑: @Alex Brown 和 @Parallelis 写了 2 个风险,所以显然它不安全。 任何人都可以发布关于如何实现安全压缩/解压缩未知文件的简短说明?
【问题讨论】:
-
主要危险来自编码绝对路径的 zip 文件。大多数解压缩实用程序都有强制相对解压缩的选项,为了安全起见,您还应该沙箱或 cheroot 解压缩操作。
-
ZIP 文件存在巨大风险:您可以将大量的 0(或任何其他常量字符)编码为一个小的 zip 文件,因此当它展开时,您可以快速填充文件系统!
标签: php apache file upload compression