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 = 1ZIP-BOMB のようなものに対して十分に保護されますか?
  • $Archive::Extract::PREFER_BIN は大量のメモリ使用から私を保護します - しかし、標準unziptar -z unrarバイナリは、zip 爆弾のような攻撃に対して安全ですか?

  • そうでない場合 - アップロードされた圧縮ファイルを安全に処理するにはdirectory tree? (したがって、ここでは、 eg 内のファイルが1つだけではありませんzip archive)。

4

1 に答える 1

3

$Archive::Extract::PREFER_BIN = 1 は zip 爆弾から保護しません。問題をシステムのバイナリ unzip ツールに渡します。

このSOの質問が役立つ場合があります。ulimit を使用して 2 番目のプロセスを実行するというアイデアが気に入っています。

于 2013-08-11T18:38:29.683 に答える