// SECURITY AUDIT

安全审计报告

信任,但验证——每一次审计结论都公开在这里。

审计总览

三轮复核 · 2026-08-18
📅 审计日期:2026-08-16 / 17 / 18(三轮)📄 审计范围:lib/ 全部 279 个 .dart 文件 · android/(录屏服务全文首审)· docs/ · test/(351 项全执行)🔬 审计方法:跨文件交叉验证 + 逐行精读新增区 + Semgrep SAST(634 规则 / 510 文件)+ 动态验证
0
高危 · 全部修复
0
中危 · 全部修复
0
低危 · 全部修复
0
信息类 · 已确认
0
确认安全设计

总体评价:三轮审计收敛,攻击面报告清零。信封加密、逐跳网络校验、权限门沙箱、崩溃安全迁移等核心机制经三轮交叉验证一致且实现扎实;新增审计区(录屏 / 工作流 / 翻译 / 打包器 / 语音)未发现新高中危;Semgrep SAST 全仓扫描 lib/ 零命中。当前状态具备发布条件。

🔧
三轮审计 · 全部修复:08-16 首轮(A~T 全 20 板块)→ 08-17 交叉审计 → 08-18 三轮复核。累计 2 高危 / 14 中危 / 9 低危 + 4 信息类,高中危全部关闭,残余低危当日修复。修复明细见 更新日志

审计历程与修复

第一轮 · 2026-08-16(A~T 全 20 板块)

高危·已修复
AI 对话请求跟随重定向 — 重定向链可被劫持改写响应内容。修复:显式 followRedirects=false + 3xx 抛错(ai_task_client.dart:27-54)。
高危·已修复
剪贴板敏感数据默认无门禁 — 任何工具可读剪贴板。修复:剪贴板默认受保护,需安全中心验证(security_center.dart)。
中危·已修复
SSRF 变体绕过 — 八进制 / 短格式 / 十六进制 IP 可绕过私网拦截。修复:resolveIpLiteral 全变体解析 + 6 项专项单测(http_safe.dart:72-127)。
中危·已修复
插件桥数据无大小上限 — 恶意插件可撑爆内存。修复:storage 10MB / file 50MB 上限(plugin_webview_page.dart)。
中危·已修复
备份恢复期剪贴板并发写回 — 恢复过程可能污染新数据。修复:restorePaused 互斥(backup_service.dart)。
中危·已修复
大文件复制阻塞主线程 — ANR 风险。修复:后台线程 + @Volatile(MainActivity.kt:1331-1343)。
低危·已修复
6 项低危 — 锁屏前密码残留、通知 URL 展示、日志冗余输出等,全部修复。

第二轮 · 2026-08-17(交叉审计)

高危·已修复
翻译服务 HTML 注入链(H1) — 译文未转义直入 WebView,可注入脚本。修复:译文 HTML 转义 + CSP meta script-src 'none'(plugin_webview_page.dart:411-456)。
高危·已缓解
tool_keys 明文落盘(H2) — 插件密钥明文存 Hive。缓解:外层备份密码加密 + 导出强制引导(backup_page.dart:299-331)。
中危·已修复
AI 端点非回环 http 明文 — 项目专属 AI 设置可配置明文端点。修复:isAllowedEndpoint 全局 + 项目专属 + 请求层三层校验。
中危·已修复
外部文件导入覆盖已有数据 — 严重数据丢失风险。修复:已有数据走合并导入 + 原子替换。
中危·已修复
WebDAV / 插件桥等残余明文入口 — 全部收敛为 HTTPS 强制或回环白名单。

第三轮 · 2026-08-18(复核 + 补审)

通过
新增审计区无新高中危 — 录屏服务全文首审 / 工作流动作执行 / 翻译全链 / APK 打包器全链 / 语音助手,均未发现新高中危。
低危·已修复
3 项低危同日修复 — 工作流 delay 无上限(clamp 10 分钟)、翻译服务重定向跟随(_postNoRedirect)、失败通知 URL 泄露(仅显示 host)。
通过
Semgrep SAST 扫描 — 634 规则 / 510 文件,lib/ 零命中。
通过
真机验证 10 项通过 — 华为 NAM-AL00:启动 / 设密 / 杀进程重启 / 剪贴板门禁 / AppLock 重锁 / 投递确认等。
通过
动态验证 — flutter analyze 0 error · test 351/351 全过 · release 构建成功。

确认安全的设计

以下安全机制经过跨文件交叉验证,确认为安全有效:

#安全机制验证路径状态
1Hive 加密密钥硬件保护FlutterSecureStorage → Android Keystore / iOS Keychain
27/7 敏感 Box 全部加密main.dart 交叉验证,敏感 box 均以 cipher 打开
3备份强制加密无密码 → UnencryptedBackupException
4备份加密算法PBKDF2(300k 轮)+ AES-256-GCM
5Release 日志零开销所有日志输出均在 kDebugMode
6WebDAV HTTPS 强制HTTP 配置直接拒绝
7沙箱 eval / Function 禁用Object.defineProperty 全覆盖
8沙箱 CSP 注入meta 标签 + HTTP 头双路径
9路径穿越防护插件导入与备份恢复均有安全校验
10其他确认项加密备份算法 v3、恢复流程原子化、敏感页面 FLAG_SECURE 等
🔬
完整报告(含逐条代码位置与修复建议)见项目 docs/security_audit_report_2026-08-18_ZCode.md。安全是我们的地基——任何问题欢迎通过 问题反馈 告诉我们。
MATRIX MODE: ON — 再输入一次或按 ESC 退出