# 中国电信研发规范整改计划 ## 目标与验收门槛 目标是在下一次生产上线申请前,消除 P0/P1 风险,并以测试、扫描、制品与审批证据满足安全、测试、流水线、代码管理和部署管理分册的要求。 生产上线门槛:P0/P1 为零;所有变更通过代码评审、单元/API 集成测试、SAST 与依赖扫描;发布 Tag、制品摘要、测试报告、部署/回退方案和审批记录可追溯。 ## 已完成的仓库整改 | 项目 | 状态 | 交付物 | |---|---|---| | 禁止不安全生产配置启动 | 已完成 | `backend/app/config.py` 在生产环境拒绝短/默认 JWT 密钥、占位数据库连接、MinIO 默认凭据和非 TLS MinIO 配置 | | 限制基础设施暴露 | 已完成 | `docker-compose.yml` 要求运行时传入凭据、固定 MinIO 镜像版本/摘要,并将服务绑定到 `127.0.0.1` | | 修复照片下载越权 | 已完成 | 下载 URL 由拜访记录反查照片归属,再按 manager 所属人权限校验 | | 关闭不安全企微绑定 | 已完成 | 停用客户端提供 `wecom_userid` 的旧接口,仅保留一次性令牌确认流程 | | 管理配置鉴权 | 已完成 | 系统配置列表接口仅允许 director 访问 | | 上传与日志基础防护 | 已完成(仓库侧) | 上传经后端校验尺寸与图片内容、重编码为 JPEG 后才写入私有对象存储;回调和认证失败日志不再写入正文/token | | 企微绑定令牌持久化 | 已完成(仓库侧) | 一次性令牌存入数据库并原子消费;启动时创建企微 ID 的部分唯一索引,防止重复绑定 | | 测试与构建流水线 | 已完成 | 增加上传/配置安全测试和 `.gitlab-ci.yml` 的后端测试、前端构建任务 | | 清理禁止的二进制文件 | 已完成 | 移除仓库根目录两份 `.xlsx` 模板;系统仍可由导入模板接口动态生成模板 | ## 剩余工作与责任边界 | 优先级 | 工作项 | 责任角色 | 截止建议 | 验收证据 | |---|---|---|---|---| | P0 | 在密钥管理系统创建并注入数据库、MinIO、JWT、Casdoor、企微和 AI 密钥;轮换历史弱凭据 | 运维/安全 | 上线前 | 密钥轮换记录、部署变量清单、无明文密钥扫描报告 | | P0 | 为 PostgreSQL/MinIO 配置私网访问、TLS、最小权限服务账号和备份恢复演练 | 运维/DBA | 上线前 | 网络策略、TLS 证书、账号权限清单、恢复演练记录 | | P1 | 在生产环境接入恶意内容扫描,并确认对象存储桶策略不允许匿名读取 | 后端/安全 | 上线前 | 扫描日志、桶策略和抽样验证 | | P1 | 在生产数据库验证 `users.wecom_userid` 唯一索引创建成功,并完成并发绑定演练 | 后端/DBA | 上线前 | 数据库迁移日志、并发绑定测试、令牌过期与审计记录 | | P1 | 配置保护分支、MR 至少一名评审、禁止直接推送 `main`/`develop` | Git 平台管理员 | 2 个工作日 | 平台截图/导出配置、MR 审计记录 | | P2 | 接入 SAST、依赖漏洞/SBOM 和容器镜像扫描,并将高危结果设为流水线阻断条件 | DevSecOps | 5 个工作日 | 流水线报告、阻断规则、漏洞例外审批 | | P2 | 补齐鉴权、对象访问、企微绑定、文件上传的 API 集成测试;明确测试准入/准出及缺陷闭环 | 测试/后端 | 5 个工作日 | 测试计划、用例、报告、缺陷清单 | | P2 | 准备生产发布包:Tag、制品摘要、SBOM、测试报告、变更单、备份与回滚方案、上线验证用例 | 项目经理/运维 | 每次发布 | 发布审批记录和可回放部署记录 | ## 发布执行顺序 1. 合并本整改分支后,由平台管理员开启分支保护和审批规则。 2. 在非生产环境注入新密钥并执行迁移、回归测试、SAST/依赖/镜像扫描。 3. 演练备份、回滚、上传隔离和对象下载授权,关闭所有 P0/P1 缺陷。 4. 创建语义化发布 Tag,以 Tag 构建制品并生成版本—制品—代码映射。 5. 获得测试报告与上线审批后,采用人工审批触发生产部署;上线后执行验证用例和安全日志抽检。