跳到内容

📦 ZIP 文件

测试用 ZIP 压缩包

✅ 永久免费 🚫 无需注册 ⚡ 即刻下载
100 MB ZIP

104,857,792 bytes

application/zip

10 MB ZIP

10,485,950 bytes

application/zip

1 MB ZIP

1,048,764 bytes

application/zip

50 MB ZIP

52,428,990 bytes

application/zip

关于ZIP 文件

免费提供从 1 MB 到 100 MB 的测试用 ZIP 压缩包,可用于上传测试、解压处理验证与传输速度测量。

普通 ZIP 的大小完全取决于其内容,而这里提供的压缩包已调整为正好等于标示大小,可直接用于边界值测试。

常见使用场景

关于压缩率因文件而异的原因,请参见 ZIP 压缩率为何因文件差异巨大

相关参考与文章

📖 常见的坑

从 10 KB 到 100 MB 的 ZIP,可用于确认上传上限与验证解压处理。内容是普通文件,并非为攻击而构造。若要测试解压后膨胀的 ZIP 炸弹或路径穿越,请先实现下述防护再自行制作。

情形 会发生什么 怎么处理
没有检查解压后的大小 ZIP 的压缩率没有上限。几十 KB 解压成数 GB 很容易构造,而上传时的大小检查会直接放行。 解压前先把头部申报的大小相加再与上限比较。但申报值可以造假,因此解压过程中也要统计写出的字节数,达到上限即中止。
文件被写到了目标目录之外 ZIP 条目名可以原样包含 ../../etc/cron.d/x 这样的相对路径。拼接后直接写入,文件就会落到任意位置 拼接后的路径用 realpath() 规范化,确认仍以目标目录开头再写入。符号链接条目同理拒绝。
日文文件名乱码 规范允许条目名用 CP437 或 UTF-8,但 Windows 自带功能会不设标志位就写 CP932。按 UTF-8 读取就会乱码。 检查通用位标志的第 11 位(UTF-8 标志),若未置位则按 CP932 解释。若只是要还原已有的名字,用文字乱码修复看候选更快。

超过 4 GB 的文件或超过 65,535 个条目会变成 ZIP64。旧库有时会悄悄返回错误结果,若要处理大型压缩包,请明确确认其 ZIP64 支持。