Files
qiji/整改计划-中国电信研发规范.md

4.8 KiB

中国电信研发规范整改计划

目标与验收门槛

目标是在下一次生产上线申请前,消除 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
企微绑定令牌持久化 已完成(仓库侧) 一次性令牌存入数据库并原子消费;通过 Alembic 迁移创建企微 ID 的部分唯一索引,防止重复绑定
测试与构建流水线 已完成(仓库侧) 增加上传、配置和 JWT 安全 API 测试;CI 执行编译、Ruff 致命错误检查、pytest、高危 Bandit 扫描、依赖漏洞审计、SBOM、Trivy 文件系统扫描和前端构建,并归档测试报告、SBOM 与前端制品
发布与回滚材料 已完成(仓库侧) 新增 docs/发布与回滚检查表.md,明确迁移、发布验证、回滚触发条件和归档清单
可追踪数据库变更 已完成(仓库侧) 新增 Alembic 基线迁移;容器启动先执行 alembic upgrade head,不再由应用启动时直接改表
企微回调解析与 JWT 依赖加固 已完成(仓库侧) 使用 defusedxml 解析回调、cryptography 解密、常量时间签名比较;移除存在无修复传递漏洞的 python-jose/ecdsa 依赖
清理禁止的二进制文件 已完成 移除仓库根目录两份 .xlsx 模板;系统仍可由导入模板接口动态生成模板

剩余工作与责任边界

优先级 工作项 责任角色 截止建议 验收证据
P0 在密钥管理系统创建并注入数据库、MinIO、JWT、Casdoor、企微和 AI 密钥;轮换历史弱凭据 运维/安全 上线前 密钥轮换记录、部署变量清单、无明文密钥扫描报告
P0 为 PostgreSQL/MinIO 配置私网访问、TLS、最小权限服务账号和备份恢复演练 运维/DBA 上线前 网络策略、TLS 证书、账号权限清单、恢复演练记录
P1 在生产环境接入恶意内容扫描,并确认对象存储桶策略不允许匿名读取 后端/安全 上线前 扫描日志、桶策略和抽样验证
P1 在生产数据库执行 Alembic 迁移,验证 users.wecom_userid 唯一索引创建成功,并完成并发绑定演练 后端/DBA 上线前 数据库迁移日志、并发绑定测试、令牌过期与审计记录
P1 配置保护分支、MR 至少一名评审、禁止直接推送 main/develop Git 平台管理员 2 个工作日 平台截图/导出配置、MR 审计记录
P2 在 GitLab 运行并验收 SBOM、Trivy 文件系统/镜像扫描;补充许可证扫描并将高危结果设为流水线阻断条件 DevSecOps 5 个工作日 流水线报告、阻断规则、漏洞例外审批
P2 扩展鉴权、对象访问、企微绑定、文件上传的 API 集成测试覆盖,并明确测试准入/准出及缺陷闭环 测试/后端 5 个工作日 测试计划、用例、报告、缺陷清单
P2 准备生产发布包:Tag、制品摘要、SBOM、测试报告、变更单、备份与回滚方案、上线验证用例 项目经理/运维 每次发布 发布审批记录和可回放部署记录

发布执行顺序

  1. 合并本整改分支后,由平台管理员开启分支保护和审批规则。
  2. 在非生产环境注入新密钥并执行迁移、回归测试、SAST/依赖/镜像扫描。
  3. 演练备份、回滚、上传隔离和对象下载授权,关闭所有 P0/P1 缺陷。
  4. 创建语义化发布 Tag,以 Tag 构建制品并生成版本—制品—代码映射。
  5. 获得测试报告与上线审批后,采用人工审批触发生产部署;上线后执行验证用例和安全日志抽检。