展开本页目录
开始前准备什么
- 下载独立练习包,保留 starter、reference 和原始输入。
- Git、Python 3与Gitleaks原生二进制;可用GITLEAKS_BIN指定路径。
- 使用Claude Code原生功能需相应账号和可用额度;本题作者参考可在本地独立运行。
- 重建含无效标记的Git历史
- 限定Claude Code只读扫描范围
- 扫描当前目录并记录零命中
- 扫描历史并核对脱敏命中
- 用git show定位原始提交
- 新假标记与普通说明做正反例
- 重开材料再扫描固定历史
starter、任务提示、具体输入、作者人工可运行参考与独立验证;不含账号/密钥/运行时数据库。
按本文环境运行,再对照原始输入和正反例。
1. 重建含无效标记的Git历史
verify.py 在临时目录重建三个固定教学提交:加入明显无效标记、普通说明、删除标记。输入图同时展示 git log 与当前树,公开包不含.git。
2. 限定Claude Code只读扫描范围
让 Claude Code 只读 fixture,分别说明当前文件扫描和历史 patch 扫描。不要把已删除文件或AI总结当作凭据已吊销。
交给目标 AI 工具的任务提示
只扫描 fixture 仓库。先读说明再使用 gitleaks dir 和 git 两种模式,生成 --redact 的 JSON。教学凭据带 EXERCISE_ONLY 前缀,由自定义规则确定性识别;不得读取真实 ~/.ssh、环境凭据,不 rewrite history,不把删文件说成吊销密钥。3. 扫描当前目录并记录零命中
先跑 Gitleaks dir;当前树应没有教学标记,返回0。配置使用本题自定义无效标记规则,不声称覆盖所有供应商密钥。
4. 扫描历史并核对脱敏命中
再跑 Gitleaks git,开启 --redact=100 和 JSON 报告。结果应命中旧 config.txt 的提交及规则,发现返回1与执行错误分开处理。
5. 用git show定位原始提交
用独立 git show 对照报告 Commit/File/Line;只查看公开无效 fixture,保留原始定位元数据,不扫描真实仓库或用户凭据目录。
6. 新假标记与普通说明做正反例
加入一条新的无效标记再跑 dir,应被发现;普通包含token单词的说明不应误报。公开输出中不能保留标记完整秘密部分。
7. 重开材料再扫描固定历史
从ZIP重建历史并重跑 python3 reference/verify.py。预期当前0、历史1、新标记1;Gitleaks 版本和实际退出码可从 records.json 回读。
怎样确认已经完成
- dir 当前树扫描无教学假凭据,git 历史扫描命中固定旧提交与路径。
- 报告和日志使用 redaction,定位元数据可核对;公开包没有 .git 或真实密钥。
- 新加假标记被发现、普通变量不误报;非零退出码按发现/执行错误分别记录。
常见问题
文件里已经删掉密钥,Claude Code 怎么查 Git 里还在不在?
再跑 Gitleaks git,开启 --redact=100 和 JSON 报告。结果应命中旧 config.txt 的提交及规则,发现返回1与执行错误分开处理。
让 AI 扫代码密钥,怎么确认它真的扫描了历史提交?
用独立 git show 对照报告 Commit/File/Line;只查看公开无效 fixture,保留原始定位元数据,不扫描真实仓库或用户凭据目录。
哪些结果已执行,哪些仍需原生账号验证?
Gitleaks 8.30.1原生扫描已验当前0命中、历史1命中、新增无效标记命中与100%脱敏;只扫描重建fixture,Claude Code会话/真实泄露处置未执行。




