预提交密钥检测 — 在 git 提交前阻止泄露的凭据、API 密钥和 .env 文件
EnvGuard – 承诺前秘密检测是一项面向实际任务的技能,主要用于EnvGuard 扫描您的代码, 以获取泄露的秘密、 证书、 API 密钥和 env 文件内容, 然后再到达 git;它使用基于 regex 的匹配 ag 的图案。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
EnvGuard 在代码提交至 git 之前,扫描源码中泄露的密钥、凭证、API 密钥以及 .env 文件内容。它基于正则表达式匹配 20+ 个服务的 50+ 种密钥格式,通过 lefthook 实现 Git 钩子集成,并生成符合 SARIF 标准的报告,以支持合规性工作流。
envguard scan [file|directory]对指定文件或目录执行一次性密钥扫描。
执行方式:
bash "/scripts/envguard.sh" scan [target]
功能说明:
.git/、node_modules/、dist/、build/、vendor/ 和 pycache).envguardignore 中定义的排除规则(语法同 .gitignore)典型使用场景:
envguard scan .envguard scan src/config.tsenvguard scan src/envguard hooks install安装 Git 预提交钩子,在每次提交前扫描暂存区文件中的密钥。
执行方式:
bash "/scripts/envguard.sh" hooks install
功能说明:
envguard hooks uninstall移除 EnvGuard 的 Git 钩子。
bash "/scripts/envguard.sh" hooks uninstall
envguard allowlist [add|remove|list] [pattern]管理误报模式。加入白名单的模式在扫描过程中将被跳过。
bash "/scripts/envguard.sh" allowlist add "EXAMPLE_API_KEY_FOR_TESTS" bash " /scripts/envguard.sh" allowlist remove "EXAMPLE_API_KEY_FOR_TESTS" bash " /scripts/envguard.sh" allowlist list
功能说明:
~/.openclaw/openclaw.json(字段路径:envguard.config.allowlist)envguard diff仅扫描暂存区变更(即 git diff --cached 输出的内容)中的密钥。
bash "/scripts/envguard.sh" diff
功能说明:
git diff --cached 获取暂存变更envguard history [directory]完整 Git 历史扫描 —— 查找所有历史提交中可能存在的密钥。
bash "/scripts/envguard.sh" history [directory]
功能说明:
git log -p 遍历全部 Git 提交历史envguard report [directory]生成符合 SARIF 标准或 Markdown 格式的合规性报告。
bash "/scripts/envguard.sh" report [directory]
功能说明:
envguard policy [directory]自定义密钥模式与强制执行规则。
bash "/scripts/envguard.sh" policy [directory]
功能说明:
~/.openclaw/openclaw.json(字段路径:envguard.config.customPatterns)加载自定义模式EnvGuard 支持检测来自 20+ 个服务的 50+ 种密钥模式:
| 类别 | 示例 | 严重等级 |
|---|---|---|
| AWS 凭证 | AKIA* 密钥、aws_secret_access_key |
Critical |
| Stripe 密钥 | sk_live_*、sk_test_*、rk_live_*、whsec_* |
Critical |
| GitHub Token | ghp_*、gho_*、ghu_*、ghs_*、ghr_* |
Critical |
| GitLab Token | glpat-* |
Critical |
| 私钥 | RSA、OPENSSH、DSA、EC、PGP 私钥 | Critical |
| Slack Token | xoxb-*、xoxp-*、xoxo-*、xapp-* |
High |
| Google API 密钥 | AIza* |
High |
| JWT Token | eyJ*(长 Base64 字符串) |
High |
| 数据库 URI | postgres://、mysql://、mongodb://、redis:// |
High |
| Twilio 密钥 | SK* 账户 SID |
High |
| SendGrid 密钥 | SG.* |
High |
| Firebase / Supabase | API 密钥与服务令牌 | High |
| npm Token | npm_* |
High |
| Heroku API 密钥 | Heroku Token 模式 | Medium |
| DigitalOcean | dop_v1_*、doo_v1_* |
Medium |
| Azure 密钥 | Azure 订阅/账户密钥 | Medium |
| Cloudflare | API Token 与密钥 | Medium |
| Docker Hub | Docker 认证 Token | Medium |
| Mailgun / Postmark | API 密钥 | Medium |
| 通用密钥 | api_key=、password=、secret=、token= |
Low |
.env 泄露 |
源文件中出现的 KEY=value 模式 |
Low |
用户可在 ~/.openclaw/openclaw.json 中配置 EnvGuard:
{
"skills": {
"entries": {
"envguard": {
"enabled": true,
"apiKey": "YOUR_LICENSE_KEY_HERE",
"config": {
"severityThreshold": "high",
"allowlist": [],
"customPatterns": [],
"excludePatterns": ["**/node_modules/**", "**/dist/**", "**/.git/**"],
"reportFormat": "markdown"
}
}
}
}
}
.envguardignore 文件(语法同 .gitignore),用于排除扫描路径hooks install,提示用户安装.envguardignore 文件格式错误,给出警告后继续使用默认排除规则用户可能会提出如下请求:
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章