Skip to content

chore(security+team): 密钥扫描 CI、忽略数据库导出、审计波模板 - #535

Merged
fastapiadmin merged 1 commit into
masterfrom
dev
Oct 5, 2026
Merged

fastapiadmin merged 1 commit into
masterfrom
dev

Conversation

@fastapiadmin

Copy link
Copy Markdown
Owner

按团队体检结论落地的四项优化(纯 CI / 文档 / 忽略规则,无业务代码改动):

1. 密钥扫描 CI(新增 .github/workflows/secrets.yml)

  • gitleaks 8.30.1,固定版本 + sha256 校验(供应链)
  • 只扫描本次变更范围:push 用 before..sha、PR 用 base..head;新分支首次推送(before 全 0)退化为 -1
  • 职责是拦住新增密钥。不做全历史扫描——全历史命中 138 处(主要在仅存于历史的 sql 导出与旧 .env),清洗历史前必然红

2. .gitignore 忽略数据库导出

backend/*.sql、backend/sql/**/*.sql、*.dump。历史上这些导出被多次提交,内含用户会话令牌(gitleaks jwt 97 处)与第三方凭据形态(generic-api-key 38 处)。种子数据仍用 backend/sql/*.json。

3. TEAM-PLAYBOOK.md 新增「审计波模板」

7 角色 + 7 个只读报告任务的可复制计划(插件不提供预置队形,模板省掉每次手工列角色),并注明 maxMembers: 8 的余量与调大方式。

4. AUDIT-REPORT.md 记录结论

  • 密钥扫描 CI 与全历史清单(138 处 / 15 提交,集中在仅存于历史的文件;当前 HEAD 无真实密钥;backend/audit-security.md:242 经核实为误报——长标识符非密钥)
  • 新增待办:曾存入存储源/接口密钥配置的第三方凭据建议按已暴露轮换(旧主密钥在历史 .env.prod 中,可解密旧密文)
  • 团队协作纪律索引指向 TEAM-PLAYBOOK.md

本地验证

gitleaks 干净提交 no leaks found(exit 0);临时插入 ghp_ 令牌 → 命中 github-pat(exit 1);before 全 0 的退化分支正常;secrets.yml YAML 解析通过;本次提交本身用 CI 同款命令扫描为 no leaks found。

按团队体检结论落地四项优化:

1) .github/workflows/secrets.yml —— gitleaks 8.30.1(固定版本 + sha256 校验),只扫描
   本次变更范围(push: before..sha;PR: base..head;新分支退化为 -1),职责是拦住**新增**密钥。
   因历史未清洗(全历史 138 处命中),不做全历史扫描。
2) .gitignore —— 增加 backend/*.sql、backend/sql/**/*.sql、*.dump(历史里多次误提交数据库导出,
   导出内含用户会话令牌与第三方凭据;种子数据仍用 backend/sql/*.json)。
3) TEAM-PLAYBOOK.md —— 新增 §7「审计波模板」:7 角色 + 7 只读报告任务的可复制计划,
   并注明 maxMembers=8 的余量与调大方式。
4) AUDIT-REPORT.md —— 记录密钥扫描 CI 与全历史密钥清单(138 处 / 15 提交,集中在仅存于历史的
   sql 导出与旧 .env、旧私钥;当前 HEAD 无真实密钥,audit-security.md:242 为误报),
   新增「曾存入存储源/接口密钥的第三方凭据」与 TEAM-PLAYBOOK 索引。

本地验证:gitleaks 干净提交 exit 0;插入 ghp_ 令牌 exit 1;before 全 0 退化分支正常;YAML 解析通过。
@fastapiadmin
fastapiadmin merged commit 79fee7a into master Oct 5, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant