关于 security-ai-keys
security-ai-keys 是面向集成 AI 提供商应用的安全审计技能,聚焦 API 密钥泄露。它列出常见泄露路径、加固检查项和扫描脚本。
主要功能
- 01AI 密钥泄露审计模式
- 02检查客户端密钥泄露
- 03扫描构建产物和源映射
- 04日志与遥测脱敏建议
- 05密钥轮换检查清单
- 06初步扫描脚本
适用场景
- 01部署前审计应用
- 02检查浏览器代码是否直接调用 AI API
- 03检查日志和错误报告中的密钥泄露
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ igorwarzocha/ opencode-workflows --skill security-ai-keys安装后在 Claude Code 中输入/security-ai-keys确认已加载。
附带文件scripts/scan.sh
详细介绍
针对集成 AI 提供商的应用中 AI API 密钥泄露情况的安全审计模式。
核心原则
- 必须将 AI API 密钥视为机密,并将其保留在服务器端。
- 不得将密钥发送到浏览器或移动客户端。
- 应避免记录密钥;在日志记录或错误报告前进行脱敏。
- 如果怀疑密钥已暴露,必须立即轮换密钥。
常见泄露途径
1) 客户端暴露
- 包含 AI 密钥的
NEXT_PUBLIC_*/VITE_*环境变量 - 从浏览器代码直接调用 AI 提供商端点
2) 构建产物
- 密钥嵌入到捆绑文件中(
dist/、build/、.next/) - 源映射暴露包含密钥的服务器代码
3) 日志和遥测
console.log/ logger 语句包含密钥值- 错误跟踪负载(Sentry、Datadog)包含请求头
快速审计命令
# Env files: AI keys accidentally exposed to client
rg -n "(NEXT_PUBLIC_|VITE_).*(OPENAI|OPENROUTER|ANTHROPIC|GEMINI|GOOGLE|VERTEX|BEDROCK|AWS|AZURE|MISTRAL|COHERE|GROQ|PERPLEXITY|TOGETHER|REPLICATE|FIREWORKS|HUGGINGFACE|HF_)" . -g "*.env*"
# Client code calling AI APIs directly (check for browser use)
rg -n "api\.openai\.com|openrouter\.ai|api\.anthropic\.com|generativelanguage\.googleapis\.com|aiplatform\.googleapis\.com|bedrock.*amazonaws\.com|api\.mistral\.ai|api\.cohere\.ai|api\.groq\.com|api\.together\.xyz|api\.perplexity\.ai|api\.replicate\.com|api\.fireworks\.ai|openai\.azure\.com" . -g "*.js" -g "*.ts" -g "*.jsx" -g "*.tsx" -g "*.vue"
# Scan build outputs for likely keys (heuristic)
rg -a "sk-[A-Za-z0-9]{20,}|sk-ant-[A-Za-z0-9-]{20,}|sk-or-[A-Za-z0-9-]{20,}|AIza[0-9A-Za-z_-]{35}|hf_[A-Za-z0-9]{20,}" dist/ build/ .next/ 2>/dev/null
# Service account credentials and cloud auth files
rg -n "\"type\"\s*:\s*\"service_account\"|GOOGLE_APPLICATION_CREDENTIALS|AWS_ACCESS_KEY_ID|AWS_SECRET_ACCESS_KEY|AZURE_OPENAI_API_KEY" . -g "*.env*" -g "*.json"
加固检查清单
- AI 提供商密钥仅存在于服务器运行时(绝不放在浏览器中)
-
.env.local和.env.*.local已加入 gitignore - 日志会对机密信息脱敏或将其省略(请求头、环境变量值)
- 部署前扫描构建产物
- 如果怀疑密钥已暴露,则轮换密钥
脚本
scripts/scan.sh- 首轮 AI 密钥泄露扫描
评论
支持 Markdown