Yon*_*sin 5 php compression apache upload file
我正在尝试实现一个用户系统(php,apache),用户可以在其中上传多个文件并下载它们的压缩版本。(或上传压缩文件并下载未压缩的文件)。
问题:压缩/解压缩这些未知文件是否有风险?换句话说,unix/php zip/unzip 操作是否将文件仅视为文本或可能会发生某些执行?
这个问题与所有压缩方法有关,zip只是一个例子。
编辑: @Alex Brown 和 @Parallelis 写了 2 个风险,所以显然它不安全。任何人都可以发布有关如何实现未知文件的安全压缩/解压缩的简短说明?
因为这对我来说似乎很合理。由于某些问题,您无法执行此操作,如果这些文件是引导脚本怎么办?(有关另外 2 个问题,请参阅 Alex 和 Parallelis 的评论)。
解决方案:
如果您要在上传后将 zip 文件存储为 zip 文件,这样做您将面临其他问题,因为 zip 可能包含大量可能合适或不合适的文件。在这种情况下,您可能希望获取文件内容的列表以自动包含在您的字段中,以便下载它们的人知道文件内容是否有效。您还可以与ClamAV之类的工具集成来扫描所有上传的文件。
注意:谷歌也在做同样的事情,他们使用他们的防病毒扫描程序(当然不可供公众使用)。
您也可以先将文件放在临时目录中,然后在该位置对其使用 zip_open 。您将能够使用操作系统级别的命令(这有其自身的风险)来验证文件的完整性,而无需实际解压缩它。您也可以参考此工具来完成同样的事情。