GitLeaks 密钥泄露防护
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @kunlungrowth/git-secret-scanning。
技能介绍
核心问题
密钥一旦提交进 Git 历史,就永远泄露——即使马上删除,也已经存在于别人的克隆、CI 缓存和镜像里。传统扫描往往在 CI 阶段才触发,反馈太晚,开发者已经写完提交甚至合并了代码。
三层防御体系
本技能将扫描左移,覆盖三个关键阶段:
- 提交前(Pre-commit):在本地用
gitleaks protect拦截,开发者立刻得到反馈。 - CI 兜底:每个 PR 上全量扫描差异,防止漏网。
- 历史审计:定期用
gitleaks detect --no-git扫整个仓库,捕获已合并分支的遗留问题。
自定义规则与治理
- 使用
.gitleaks.toml添加内部 Token 规则。 - 优先用
keywords缩小扫描面提速,用entropy过滤高随机串降噪。 - 测试假密钥用
gitleaks:allow注释跳过;真实泄露必须立即轮换凭证并清理历史。
适用边界
这是工程防护方法论,不是安全审计或法律意见。发现疑似大规模泄露,仍需按事件流程上报。
使用场景
- 开发者准备提交代码,需要在本地拦截明文密钥,防止凭证进入Git历史
- CI工程师为每个PR配置全量扫描差异,兜底防止历史中的密钥漏网
- 安全工程师为内部自定义Token添加`.gitleaks.toml`规则,缩小扫描面减少误报
- 团队发现已泄露密钥,需立即轮换凭证并用`filter-branch`清理Git历史
适合人员
- 后端开发者:需要在提交代码前拦截密钥,防止凭证进入Git历史
- CI/CD工程师:负责在PR流程中配置密钥扫描,兜底阻止密钥漏网
- 安全工程师:需为内部自定义Token添加扫描规则并维护误报治理
- 运维工程师:定期执行仓库历史审计,清理已合并分支中的遗留密钥