NickCirv/secret-scan
GitHub: NickCirv/secret-scan
一款零配置的 Git 历史密钥扫描工具,在代码入库前检测并拦截 API 密钥、令牌、密码等敏感信息泄露。
Stars: 1 | Forks: 0
# secret-scan
```
npx secret-scan
```
```
secret-scan · scanning 847 commits
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠ FINDINGS (2)
[HIGH] Stripe Key (sk_live_)
commit: 7e9d3c1 (2023-11-02)
file: .env.backup:12
line: STRIPE_SECRET=sk_l...****
[MEDIUM] High-entropy string (base64)
commit: 1a4f8e2 (2023-09-20)
file: scripts/deploy.sh:34
line: TOKEN="****...****"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Scanned: 847 commits · 2 findings in 2 files · HIGH:1 MEDIUM:1 LOW:0
```
## 命令
| 命令 | 描述 |
|---------|-------------|
| `secret-scan` | 扫描当前 repo 的完整 git 历史 |
| `--path ` | 扫描特定的仓库路径 |
| `--depth N` | 限制为最近 N 次提交 |
| `--since ` | 例如 `"6 months ago"` 或 `"2024-01-01"` |
| `--fix-advice` | 显示用于移除 secrets 的 BFG/filter-repo 命令 |
| `--report json\|text` | 输出格式 (默认: text) |
| `--output ` | 将报告保存到文件 |
| `--whitelist ` | 跳过匹配此正则表达式的发现结果 |
## 检测模式
| 类别 | 示例 |
|----------|---------|
| AWS | Access Key IDs (`AKIA...`) |
| Anthropic | `sk-ant-api03-...` API keys |
| OpenAI | `sk-...` API keys |
| GitHub | `ghp_`, `gho_`, `ghs_`, `ghr_` tokens |
| Stripe | `sk_live_`, `sk_test_`, `rk_live_`, `pk_live_` |
| Private Keys | RSA/PEM 私钥头 |
| JWT Tokens | 三段式 base64url tokens |
| Env assignments | 带有值的 `PASSWORD=`, `SECRET=`, `API_KEY=`, `TOKEN=` |
| URL credentials | `proto://user:password@host` |
| High-entropy strings | Base64/hex 字符串 >40 字符且熵 >4.0 bits |
## CI 用法
如果有任何发现则退出代码为 `1`,如果干净则为 `0`:
```
- name: Scan git history for secrets
run: npx secret-scan --depth 100
```
## 安装
```
npx secret-scan # no install needed
npm install -g secret-scan # global install
```
**零依赖** · **Node 18+** · 由 [NickCirv](https://github.com/NickCirv) 制作 · MIT
标签:API安全, DevSecOps, DLP, GitHub安全, Google AI, JSON输出, LLM应用, MITM代理, Pre-commit, Secret Scanning, 上游代理, 云安全监控, 信息防泄露, 历史扫描, 安全助手, 熵值检测, 网络安全, 自定义脚本, 自定义脚本, 隐私保护, 静态分析