我正在创建一个PHP脚本,用于检索用户提供的zip文件,解压缩它,并使用ZipArchive
对象对其中的文件执行一些操作。我怎样才能避免像42.zip这样的拉链炸弹?
答案 0 :(得分:1)
查看zip_entry_filesize:http://php.net/manual/en/function.zip-entry-filesize.php
它应该为您提供.zip文件中未压缩存档的实际大小。以下是手册页注释中提供的示例函数:
function get_zip_originalsize($filename) {
$size = 0;
$resource = zip_open($filename);
while ($dir_resource = zip_read($resource)) {
$size += zip_entry_filesize($dir_resource);
}
zip_close($resource);
return $size;
}
$size = get_zip_originalsize('file.zip');
echo "original size: $size bytes\n";