归档格式、完整性与安全恢复
选择格式并检查成员路径与完整性
需能区分源目录、目标文件和归档成员。固定文件 ZIP 示例依赖 Python 3.11+ 标准库与 zlib,只打包 first.txt、second.txt,拒绝已有输出和符号链接;它不解压外部包。本文另说明恢复前应检查的路径、完整性和资源预算。 示例未在本轮执行。
归档 压缩格式
归档压缩格式区分打包与压缩。tar把多个成员组织成归档,gzip通常压缩单一字节流,ZIP兼具成员目录与独立压缩;扩展名只是提示,实际格式需由解析器确认。
归档 成员路径
归档成员路径不能直接信任。绝对路径、父目录穿越和不同平台分隔符都可能让解压越出目标;先列清单并规范化每个成员,再决定允许哪些路径,不盲目extractall。
归档 CRC 与摘要
归档CRC与摘要用途不同。CRC可发现常见随机损坏,SHA-256用于内容摘要比较,但都不能单独证明发布者身份;来源认证需要可信渠道或签名信任链。
依据与适用范围
- 本课官方依据,资料核对日2026-10-17。
以上依据用于解释本文列明的规则;示例未执行,不代表产品全部能力或跨平台验证。历史资料的版本、账号与界面位置需按目标环境确认。
限制链接、展开资源与清单范围
归档 符号链接
归档符号链接可能指向目标目录外,文件名看似安全也不足够。跨平台恢复权限、所有者和链接语义需独立审阅,本例只创建普通文件ZIP,不恢复任何外部归档。
归档 解压炸弹
归档解压炸弹可用少量压缩字节产生巨大展开数据。先限制成员数量、单文件大小和总展开大小,压缩比只是辅助指标;检查声明大小也不能保证实际流读取不超预算。
归档 先列清单
归档先列清单让读者看到成员名、压缩后大小与展开大小。清单审阅不写文件,不证明压缩数据完整;完整读取CRC检查属于另一层验证,本轮不执行任何例子。
调查损坏、密码与时间戳差异
归档 文件损坏
归档文件损坏可能表现为中央目录缺失或CRC不符。先复制损坏原件再调查来源,不能反复写入修复原件;若没有独立备份,工具可能只恢复部分成员,不能保证完整恢复。
归档 密码边界
归档密码边界取决于具体加密方案和工具支持。设置密码不自动隐藏成员名,旧ZIP加密不等于现代认证加密;本例不实现加密,敏感资料应选择明确支持所需保护的方案。
归档 时间戳差异
归档时间戳差异可能来自时区、精度和格式限制。比较备份时不要只看文件时间,内容摘要和成员路径更可靠;可复现打包还要固定顺序、时间和权限元数据,本文不宣称字节可复现。
继续阅读
- 压缩与归档完整实践与解答