该技能提供针对集成 AI 服务商应用的安全审计模式,重点在于识别 AI API 密钥泄露并制定脱敏策略,适用于 OpenAI、Anthropic、Gemini 以及 10 余家其他服务商。
核心原则
必须将 AI API 密钥视为机密,并保留在服务端。
不得将密钥下发到浏览器或移动客户端。
应避免记录密钥;在写入日志或错误上报前进行脱敏。
一旦怀疑密钥暴露,必须立即轮换。
常见泄露路径
1)客户端暴露
包含 AI 密钥的 NEXT_PUBLIC_* / VITE_* 环境变量。
浏览器代码直接调用 AI 服务商端点。
2)构建产物
密钥被嵌入打包产物(dist/、build/、.next/)。
source map 暴露包含密钥的服务端代码。
3)日志与遥测
包含密钥值的 console.log / logger 语句。
错误追踪载荷(Sentry、Datadog)中包含请求头。
快速审计命令
环境文件:意外暴露给客户端的 AI 密钥
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*"
客户端代码直接调用 AI API(检查是否用于浏览器)
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"
扫描构建输出中的疑似密钥(启发式)
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
服务账号凭据与云认证文件
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 密钥泄露扫描。
适用场景:在集成 AI 服务商的应用中进行密钥泄露审计、上线前安全检查、日志与构建产物排查。限制:资料未提供具体支持的平台范围、收费方式、价格或效果保证;审计命令为启发式匹配,可能产生误报或漏报,需结合人工复核。