1

ユーザーがアップロードしたzipファイルを抽出する必要があるサービスを実装しています。

ディスクのオーバーフローを避けるために、zip ファイルのサイズと解凍されたファイルのサイズの両方を制限する必要があります。

解凍する前にそれを行う方法はありますか(解凍されたファイルのサイズを確認してください)?(セキュリティ上の理由から)。

PHPスクリプトから呼び出されたUNIXを使用しています。

4

1 に答える 1

1

PHP で作業しているので、そのZipArchiveライブラリを使用します。

$zip = zip_open($file);
$extracted_size = 0;
while (($zip_entry = zip_read($zip))) {
    $extracted_size += zip_entry_filesize($zip_entry);
    if ($extracted_size > $max_extracted_size) {
        // abort
    }
}
// do the actual unzipping

各ファイルのメタデータのサイズを考慮して、ファイル数にも制限を設けるか、ファイルごとに一定量を追加することをお勧めします。正確な数値を簡単に求めることはできませんが、1 ファイルあたり数百バイトから数キロバイトを追加することは妥当な見積もりです。

于 2012-09-06T20:12:08.613 に答える