security-secrets
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinese<overview>
High-signal regex patterns for detecting secrets in codebases.
</overview>
<patterns><overview>
用于检测代码库中敏感信息的高可信度正则规则。
</overview>
<patterns>High-Signal Regex Patterns
高可信度正则规则
| Secret Type | Pattern | Notes |
|---|---|---|
| AWS Access Key | | Always 20 chars, starts AKIA |
| AWS Secret | | 40 chars base64-ish |
| Google API Key | | 39 chars total |
| Google OAuth | | Client ID |
| Google Service Account | | In JSON files |
| GitHub Token | | ghp_/gho_/ghu_/ghs_/ghr_ |
| GitHub PAT (fine-grained) | | Newer format |
| GitLab Token | | Personal access token |
| Stripe Secret | `sk_(live | test)_[0-9a-zA-Z]{24,}` |
| Stripe Restricted | `rk_(live | test)_[0-9a-zA-Z]{24,}` |
| Stripe Publishable | `pk_(live | test)_[0-9a-zA-Z]{24,}` |
| Slack Bot Token | | Bot token |
| Slack User Token | | User token |
| Slack Workflow Token | | Workflow token |
| Slack App Token | | App-level token |
| Slack Webhook | | |
| Discord Token | | Bot token |
| Discord Webhook | | |
| OpenAI Key | | API key |
| Anthropic Key | | API key |
| Twilio | | API key SID |
| SendGrid | | API key |
| Mailgun | | API key |
| Mailchimp | | API key |
| Firebase | | Database URL |
| Supabase | | JWT (check context) |
| Heroku | | API key |
| NPM Token | | Publish token |
| PyPI Token | | Upload token |
| Private Key | `-----BEGIN (RSA | EC |
| Database URL | `(?i)(postgres | mysql |
| Password in URL | | Basic auth |
| JWT Secret | `(?i)(jwt[_-]?secret | token[_-]?secret)['"]?\s*[:=]\s*['"][^'"]+['"]` |
| Generic Secret | `(?i)(password | passwd |
| 敏感信息类型 | Pattern | 说明 |
|---|---|---|
| AWS Access Key | | 固定20个字符,以AKIA开头 |
| AWS Secret | | 40个字符的类base64格式 |
| Google API Key | | 总计39个字符 |
| Google OAuth | | 客户端ID |
| Google Service Account | | 存在于JSON文件中 |
| GitHub Token | | 格式为ghp_/gho_/ghu_/ghs_/ghr_ |
| GitHub PAT (fine-grained) | | 较新的格式 |
| GitLab Token | | 个人访问令牌 |
| Stripe Secret | `sk_(live | test)_[0-9a-zA-Z]{24,}` |
| Stripe Restricted | `rk_(live | test)_[0-9a-zA-Z]{24,}` |
| Stripe Publishable | `pk_(live | test)_[0-9a-zA-Z]{24,}` |
| Slack Bot Token | | 机器人令牌 |
| Slack User Token | | 用户令牌 |
| Slack Workflow Token | | 工作流令牌 |
| Slack App Token | | 应用级令牌 |
| Slack Webhook | | |
| Discord Token | | 机器人令牌 |
| Discord Webhook | | |
| OpenAI Key | | API密钥 |
| Anthropic Key | | API密钥 |
| Twilio | | API密钥SID |
| SendGrid | | API密钥 |
| Mailgun | | API密钥 |
| Mailchimp | | API密钥 |
| Firebase | | 数据库URL |
| Supabase | | JWT(需结合上下文判断) |
| Heroku | | API密钥 |
| NPM Token | | 发布令牌 |
| PyPI Token | | 上传令牌 |
| Private Key | `-----BEGIN (RSA | EC |
| Database URL | `(?i)(postgres | mysql |
| Password in URL | | 基础认证 |
| JWT Secret | `(?i)(jwt[_-]?secret | token[_-]?secret)['"]?\s*[:=]\s*['"][^'"]+['"]` |
| Generic Secret | `(?i)(password | passwd |
CLI Scanning Commands
CLI扫描命令
bash
undefinedbash
undefinedQuick grep scan (fast, high signal)
Quick grep scan (fast, high signal)
rg -n "(AKIA[0-9A-Z]{16}|sk_(live|test)|rk(live|test)|pk(live|test)|xox[baprs]-|xapp-|xwfp-|gh[pousr]|github_pat_)" .
rg -n "BEGIN (RSA|EC|OPENSSH|DSA|PGP) PRIVATE KEY" .
rg -n "(?i)(api[_-]?key|secret|token|password)\s*[:=]\s*['"][^'"]{8,}" .
rg -n "(AKIA[0-9A-Z]{16}|sk_(live|test)|rk(live|test)|pk(live|test)|xox[baprs]-|xapp-|xwfp-|gh[pousr]|github_pat_)" .
rg -n "BEGIN (RSA|EC|OPENSSH|DSA|PGP) PRIVATE KEY" .
rg -n "(?i)(api[_-]?key|secret|token|password)\s*[:=]\s*['"][^'"]{8,}" .
Dedicated scanners (thorough)
Dedicated scanners (thorough)
gitleaks detect --source . --redact --no-git
semgrep scan --config p/secrets --error
trufflehog filesystem . --only-verified
</commands>
<priority_files>gitleaks detect --source . --redact --no-git
semgrep scan --config p/secrets --error
trufflehog filesystem . --only-verified
</commands>
<priority_files>Files to Prioritize
优先扫描文件
| File Pattern | Risk Level | Why |
|---|---|---|
| CRITICAL | Often contains all secrets |
| HIGH | App configuration |
| HIGH | Named suspiciously |
| HIGH | DB passwords, service creds |
| HIGH | CI/CD secrets |
| MEDIUM | Test data with real creds |
| CRITICAL | Private keys |
</priority_files>
<rules>| 文件规则 | 风险等级 | 原因 |
|---|---|---|
| CRITICAL | 通常包含所有敏感信息 |
| HIGH | 应用配置文件 |
| HIGH | 文件名称存疑 |
| HIGH | 包含数据库密码、服务凭证 |
| HIGH | CI/CD中的敏感信息 |
| MEDIUM | 测试数据中可能包含真实凭证 |
| CRITICAL | 私钥文件 |
</priority_files>
<rules>Redaction Format
脱敏格式
When reporting secrets, MUST always redact:
Original: AKIAIOSFODNN7EXAMPLE
Redacted: AKIA****...****MPLE
Original: sk_test_XXXXYYYYZZZZ11112222
Redacted: sk_****...****2222Show first 4 + last 4 characters only. MUST instruct immediate rotation.
</rules>上报敏感信息时,必须按照以下格式脱敏:
Original: AKIAIOSFODNN7EXAMPLE
Redacted: AKIA****...****MPLE
Original: sk_test_XXXXYYYYZZZZ11112222
Redacted: sk_****...****2222仅显示前4位和后4位字符。必须提示立即轮换敏感信息。
</rules>