Perl 如何安全地使用Archive::Extract-againist zip bomb或类似软件?

Perl 如何安全地使用Archive::Extract-againist zip bomb或类似软件?,perl,compression,Perl,Compression,问题大纲: 需要允许通过web从上传ZIP文件(以及tgz和更多压缩目录树) 应提取zip文件以进行内容处理 计划用于提取 这里有很多东西,比如 从手册 Extract可以使用纯perl模块或命令行 在引擎盖下的程序。一些纯perl模块(如 归档::Tar和压缩::unLZMA)获取 归档到内存中,这在您的系统上可能不可行。 考虑设置全局变量$存档::提取:: 1,这将更喜欢使用命令行程序,而不会 消耗这么多内存 问题是: 当我设置$Archive::Extract::preference

问题大纲:

  • 需要允许通过web从上传ZIP文件(以及
    tgz
    和更多压缩目录树)
  • 应提取zip文件以进行内容处理
  • 计划用于提取
  • 这里有很多东西,比如
从手册

Extract可以使用纯perl模块或命令行 在引擎盖下的程序。一些纯perl模块(如 归档::Tar和压缩::unLZMA)获取 归档到内存中,这在您的系统上可能不可行。 考虑设置全局变量$存档::提取:: 1,这将更喜欢使用命令行程序,而不会 消耗这么多内存

问题是:

  • 当我设置
    $Archive::Extract::preference_BIN=1
    时,我就有足够的保护来抵抗类似拉链炸弹的东西了

  • $Archive::Extract::preference_BIN保护我免受大量内存使用-但是,标准的
    unzip
    tar-z
    unrar
    二进制文件可以安全地抵御类似zip炸弹的攻击吗

  • 如果没有-如何安全地处理已上载的压缩
    目录树
    ?(因此,这里不仅有一个文件,例如
    zip归档文件


$Archive::Extract::preference_BIN=1无法保护您免受压缩炸弹的攻击,您正在将问题传递给系统的二进制解压缩工具

阿美会帮助你的。我喜欢使用ulimit运行第二个进程的想法