From 896320c83e8b976c26642b7c06948563f7c80d10 Mon Sep 17 00:00:00 2001 From: zhangtao <9480807882@qq.com> Date: Sun, 4 Oct 2026 06:02:08 +0800 Subject: [PATCH] =?UTF-8?q?docs(audit):=20=E8=A1=A5=E5=85=85=E6=94=B6?= =?UTF-8?q?=E5=B0=BE=E7=8A=B6=E6=80=81=EF=BC=88=E6=8F=90=E4=BA=A4/?= =?UTF-8?q?=E9=83=A8=E7=BD=B2=E7=89=88=E6=9C=AC=E3=80=81=E6=9C=80=E7=BB=88?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E7=BB=93=E6=9E=9C=E3=80=81=E5=9B=A2=E9=98=9F?= =?UTF-8?q?=E5=BD=92=E6=A1=A3=E4=B8=8E=E9=81=97=E7=95=99=E4=BA=BA=E5=B7=A5?= =?UTF-8?q?=E9=A1=B9=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AUDIT-REPORT.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/AUDIT-REPORT.md b/AUDIT-REPORT.md index 1e2c904e..5cc9137e 100644 --- a/AUDIT-REPORT.md +++ b/AUDIT-REPORT.md @@ -201,3 +201,37 @@ - 配置备份:`docker-compose.yaml.bak-*`、`nginx.conf.bak-*`、`.env.bak-*` - 静态成品备份:`backups/{web,app-h5}-<时间戳>`(每类保留 5 份) - 种子账号新口令:服务器 `/root/.fa-seed-passwords`(600,登录后请修改并删除) + +## 10. 收尾状态 + +**代码与部署** + +- 本轮共 12 个提交(`ce940119` … 本报告提交),已推送 GitHub `master/dev` 与 gitee `gitee/dev`。 +- 线上版本:后端含 t10/t11/t13/t15/t16/t19 全部修复;Web 含 t17/t18 错误文案修复;App 为 t9 修复版。 +- 部署方式:本机构建成品 → 服务器只接收镜像与静态产物(服务器无源码、无构建),细节见 `DEPLOYMENT.md`。 + +**最终验证(部署后新跑)** + +| 项 | 结果 | +| --- | --- | +| 容器 | backend / nginx / redis / mysql 全部 healthy;健康检查 exit 0 | +| 四端(公网) | `/`、`/web/`、`/app/`、`/api/v1/monitor/health/check` 均 200 | +| 接口文档 | 公网 403;仅内网白名单可访问(本机 200) | +| Host 校验 | 正确域名 200;`localhost` 400;伪造域名 400(`ALLOW_LOCALHOST_HOSTS=false`) | +| 数据面暴露 | 3306/6379/8001 无公网监听(宿主 `ss` + 服务器自连双向确认) | +| 业务语义 | 验证码过期 → 400 且保留业务文案;无令牌 → 401;内部故障 → 5xx + 通用文案(细节仅日志) | +| 密钥 | 旧公开默认密钥伪造令牌被拒;`SECRET_KEY`/`DATA_ENCRYPTION_KEY` 已注入并轮换 | +| 类型检查 | basedpyright 全量 0 errors(`backend/pyrightconfig.json`);ruff 全绿 | +| 测试 | 后端 pytest 97 passed;Web vitest 41 passed | +| 巡检 | `fa-health-check.timer` active,日志无 ALERT | + +**团队** + +审计团队(7 名成员,t1–t19)已归档;本报告与 7 份分报告为全部交付物,残余项见 §9.2。 + +**收尾后仍需人工处理(不阻塞上线)** + +1. 轮换 `OPENAI_API_KEY` 与旧数据库口令(已进历史/镜像层,按已泄露处理)。 +2. 审计报告内含旧密钥的少量特征(前 4 字符与长度)用于佐证;若仓库将转为公开,建议先按上述轮换再考虑是否脱敏。 +3. §9.2 中的产品/架构决策项(会话失效、数据权限注入、多租户规格、i18n、移动端 `ContentType`)。 +