Git Secrets 预提交扫描器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/git-secrets-precommit-scanner。
技能介绍
要解决的具体问题
开发者在提交代码变更时,容易误将API密钥、访问令牌、私钥等敏感信息写入 git diff 的新增行。这类泄露一旦被推送到远程仓库,或被其他分支、Pull Request 引用,敏感信息可能长期留存在Git历史中,后续手动审查不仅耗时,还容易因遗漏导致安全事故,事后清理历史记录的成本也极高。
核心能力与工作方式
该技能专注于在代码提交或推送前完成敏感信息扫描,核心能力基于truffleHog的熵检测与自定义正则模式匹配。熵检测可识别类似密钥的高随机字符串,自定义正则能精准匹配特定格式的令牌或密钥;同时集成pre-commit钩子与GitHub推送保护API,实现实时拦截。
关键步骤包括:
- 扫描
git diff中的新增内容,覆盖提交前和推送前的关键节点 - 交叉验证熵值检测结果与自定义正则的匹配项,减少误报
- 命中敏感信息时直接阻断提交或推送操作,避免泄露扩散
适用边界与注意点
技能的拦截效果依赖truffleHog的规则集与自定义正则的适配性,未覆盖所有格式的敏感信息。上游文档提及使用Docker时需确保引擎已启动,安装脚本需校验checksum且依赖cosign工具;自定义正则规则需结合实际项目场景调整,才能提升扫描的精准度。
使用场景
- 在本地仓库提交代码前,需检查 `git diff` 新增行是否误写访问令牌,并阻止该提交。
- 团队使用 GitHub 推送保护时,需在推送分支前扫描 Pull Request 涉及的变更,避免敏感信息进入远端。
- 引入共享 Git 仓库前,需对特定分支的提交记录执行 truffleHog 熵检测,确认没有高随机密钥残留。
- CI 流水线准备拉取代码前,需对工作区变更做自定义正则扫描,确认没有项目专属凭证被误提交。
适合人员
- 需要管理多仓库提交历史的后端开发者,希望在 `git commit` 前拦截密钥泄露。
- 负责 GitHub 仓库安全的 DevOps 工程师,需要在推送保护中配置实时敏感信息扫描。
- 维护共享 Git 仓库的运维人员,需要在合并分支前验证历史提交是否包含凭证。
- 参与 CI/CD 流水线建设的平台工程师,需要在代码拉取前阻断潜在敏感信息。