# 安全边界

本地、单仓库、单进程写入工具。源目录、仓库、恢复目标的父目录必须由你控制；不支持其他恶意进程同时篡改这些目录。运行时不上传数据，不收集遥测，不启动网络服务。

文件内容以明文存储；必要时使用操作系统磁盘加密和权限保护。不要把备份仓库、凭据或私人数据提交到代码仓库。排除项需用户明确设置，不假定项目中的 `.env` 可以公开。

路径在 MoonBit 与适配层双重校验：拒绝绝对清单路径、穿越、控制字符、Windows 保留名、大小写重名、不一致父目录拼写、链接/联接点/硬链接和特殊文件。读取使用大小预算、文件身份/修改状态检查；清单先校验原始字节 SHA-256，再限制 JSON 深度与数量。恢复以排他方式创建文件，最终目录提交不会替换已存在目标。

完整性不是真实性。攻击者若能改写对象、清单及快照 ID，SHA-256 本身无法阻止其伪造新历史。重要快照 ID 应另存到独立、可信渠道；本版没有签名、不可变远端存储或加密密钥管理。

数据对象写入后同步，再提交清单。恢复先全量验证，再写暂存目录，所有文件通过验证后才提交。中断测试覆盖进程终止，不等于硬件断电测试；Windows 目录元数据同步没有可移植保证。NAS/网络盘的持久性取决于其文件系统，未经本版实测。

发生损坏时保持原仓库和原始资料，停止写入，不自动用新数据覆盖损坏对象。恢复失败留下的 `.moonrestore-*.partial` 目录用于诊断；删除前确认确实是该次失败的暂存目录且没有需要保留的内容。

目前没有公开的专用安全联系地址。发布后应启用 GitHub 私密漏洞报告。请勿在公开 issue 粘贴真实文件内容、令牌、日志中的个人路径或未脱敏数据。
