关于 credential-scanner
credential-scanner 是面向 OpenClaw 项目的凭据扫描技能,在运行可读取文件的技能前检查工作区中的敏感信息。它按风险分类发现结果,并提供屏蔽值、忽略规则检查和修复建议。
主要功能
- 01扫描配置文件和文本中的密钥
- 02跳过二进制文件及常见依赖目录
- 03检查 .gitignore 忽略规则
- 04区分已提交与本地凭据
- 05提供逐项修复建议
适用场景
- 01运行可读取文件的技能前检查工作区
- 02确认敏感配置不会被提交
- 03在联网技能运行前评估凭据风险
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ useai-pro/ openclaw-skills-security --skill credential-scanner安装后在 Claude Code 中输入/credential-scanner确认已加载。
详细介绍
凭据扫描器
你是 OpenClaw 项目的凭据扫描器。在用户运行任何具有 fileRead 访问权限的技能之前,扫描工作区,查找可能被读取并潜在泄露的暴露机密。
扫描内容
高优先级文件
默认范围:仅限当前工作区。 优先扫描项目级文件:
.env、.env.local、.env.production、.env.*docker-compose.yml(环境变量部分)config.json、settings.json、secrets.json*.pem、*.key、*.p12、*.pfx
主目录文件(仅在获得用户明确同意后扫描):
~/.aws/credentials、~/.aws/config~/.ssh/id_rsa、~/.ssh/id_ed25519、~/.ssh/config~/.netrc、~/.npmrc、~/.pypirc
检测模式
扫描所有文本文件,查找以下模式:
# API Keys
AKIA[0-9A-Z]{16} # AWS Access Key
sk-[a-zA-Z0-9]{48} # OpenAI API Key
sk-ant-[a-zA-Z0-9-]{80,} # Anthropic API Key
ghp_[a-zA-Z0-9]{36} # GitHub Personal Token
gho_[a-zA-Z0-9]{36} # GitHub OAuth Token
glpat-[a-zA-Z0-9-_]{20} # GitLab Personal Token
xoxb-[0-9]{10,}-[a-zA-Z0-9]{24} # Slack Bot Token
SG\.[a-zA-Z0-9-_]{22}\.[a-zA-Z0-9-_]{43} # SendGrid API Key
# Private Keys
-----BEGIN (RSA |EC |DSA |OPENSSH )?PRIVATE KEY-----
-----BEGIN PGP PRIVATE KEY BLOCK-----
# Database URLs
(postgres|mysql|mongodb)://[^\s'"]+:[^\s'"]+@
# Generic Secrets
(password|secret|token|api_key|apikey)\s*[:=]\s*['"][^\s'"]{8,}['"]
跳过的文件
不要扫描:
node_modules/、vendor/、.git/、dist/、build/- 二进制文件(图像、编译代码、归档文件)
- 锁定文件(
package-lock.json、yarn.lock、pnpm-lock.yaml) - 明确标记为示例的测试数据(路径中包含
example、test、mock、fixture)
输出格式
CREDENTIAL SCAN REPORT
======================
Project: <directory>
Files scanned: <count>
Secrets found: <count>
[CRITICAL] .env:3
Type: API Key (OpenAI)
Value: sk-proj-...████████████
Action: Move to secret manager, add .env to .gitignore
[CRITICAL] src/config.ts:15
Type: Database URL with credentials
Value: postgres://admin:████████@db.example.com/prod
Action: Use environment variable instead
[WARNING] docker-compose.yml:22
Type: Hardcoded password in environment
Value: POSTGRES_PASSWORD=████████
Action: Use Docker secrets or .env file
RECOMMENDATIONS:
1. Add .env to .gitignore (if not already)
2. Rotate any exposed keys immediately
3. Consider using a secret manager (e.g., 1Password CLI, Vault, Doppler)
规则
- 切勿显示完整的机密值——始终截断并替换为
████████ - 检查
.gitignore,如果其中未忽略敏感文件,则发出警告 - 区分已提交的机密(严重)和仅存在于本地的文件(警告)
- 如果在运行具有
network访问权限的技能之前执行扫描,则将所有发现升级为 CRITICAL - 针对每项发现提出具体的修复建议
- 检查项目是否有意外包含真实值的
.env.example
评论
支持 Markdown