C# ZIP 解压安全实战:从 Zip Slip 攻击防御到 Span/stackalloc 现代性能优化
你以为解压一个 ZIP 包只是一行代码?里面藏着 Zip Slip 路径穿越漏洞、GBK/UTF-8 中文乱码、CRC 边界溢出等坑点。本文带你拆解 SwitchData 项目里的 SharpZipHelper:用 ReadOnlySpan.SplitAny 做零字符串分配解析,用 stackalloc + RandomAccess 做零堆分配 ZIP 头校验,用沙箱包含判定彻底堵死 Zip Slip,最后用 ArraySegment 把 CRC32 算得又快又准。看完你也能写一个安全、性能、编码三不误的现代 .NET 压缩工具类。