问题大纲:
- 需要允许通过 web-from 上传 ZIP 文件(
tgz
和更多压缩目录树) - 应提取 zip 文件以进行内容处理
- 计划使用Archive::Extract进行提取
- 这里有ZIP BOMBS 之类的东西......
从手册
Archive::Extract 可以在后台使用纯 perl 模块或命令行程序。一些纯 perl 模块(如 Archive::Tar 和 Compress::unLZMA)将归档的全部内容放入内存,这在您的系统上可能不可行。考虑将全局变量 $Archive::Extract::PREFER_BIN 设置为 1 ,这将更喜欢使用命令行程序并且不会消耗太多内存。
问题是:
- 当我设置
$Archive::Extract::PREFER_BIN = 1
- 我有足够的保护对抗 ZIP-BOMB 之类的东西? $Archive::Extract::PREFER_BIN 保护我免受大量内存使用 - 但是,标准
unzip
的tar -z
unrar
二进制文件对于像 zip 炸弹这样的攻击是安全的吗?如果不是 - 如何处理安全上传的压缩文件
directory tree
?(所以这里不仅是 eg 内的一个文件zip archive
)。