← 中文资源

简体中文版本

在 CI 中用预提交扫描检测密钥泄漏

每次推送运行密钥扫描,高置信命中即让构建失败,并告警 on-call 以便在使用前轮转泄漏凭证。

阅读英文原文

扫描 diff,告警 on-call

每次推送运行扫描,高置信命中即让构建失败。仅构建失败不能撤销泄漏,需同时 paging on-call 以便在使用前轮转凭证。

gitleaks git --pre-commit --verbose

链接运行手册

告警必须链接到所检测凭证类型的轮转运行手册。仅回滚提交不够,密钥已进入历史,应视为已泄露。

if (gitleaks.failed) {
  await pager.alert({ severity: 'high', message: 'secret leaked in ' + commit });
  process.exit(1);
}

预期结果

含高置信密钥的推送使构建失败并在一分钟内 paging on-call。告警链接轮转运行手册,凭证被轮转,提交被回滚。误报以原因加入允许清单并每季复审。扫描器只识别模式,无法识别形似普通字符串的密钥,自定义规则能弥补部分;定期对历史扫描而非仅 diff。