📦 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 上传的大小限制测试
- 确认服务端解压是否对解压后大小设限(防范 ZIP 炸弹)
- 确认是否拒绝条目名中的
../(防范 Zip Slip) - 模拟备份处理与传输带宽
关于压缩率因文件而异的原因,请参见 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 支持。