4

问题大纲:

  • 需要允许通过 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 保护我免受大量内存使用 - 但是,标准unziptar -z unrar二进制文件对于像 zip 炸弹这样的攻击是安全的吗?

  • 如果不是 - 如何处理安全上传的压缩文件directory tree?(所以这里不仅是 eg 内的一个文件zip archive)。

4

1 回答 1

3

$Archive::Extract::PREFER_BIN = 1 不能保护您免受 zip 炸弹的攻击,您将问题传递给系统的二进制解压缩工具。

这个 SO question可能会对您有所帮助。我喜欢使用 ulimit 运行第二个进程的想法。

于 2013-08-11T18:38:29.683 回答