⚠️ 待更新·2026-08-29核验 · 更新时间待核验 · 本文信息可能已过期,请以官方文档为准 更新时间:2026-08-29 · 核验状态:待更新 · 官方溯源待补
简介
免费 API Key 看似不值钱,但一旦泄露同样会被脚本刷爆配额,甚至被用来钓鱼或刷黑产内容,导致账号被封。本篇给出从开发到上线全链路的密钥保护清单,包含硬编码防御、git 钩子、KMS 接入、泄露应急四部分。
架构图
flowchart TD
A[API Key Security] --> B[.env file - local dev]
A --> C[Secret manager - production]
A --> D[Git hooks - prevent leak]
A --> E[Quota watchdog - detect abuse]
B --> F[Single source of truth]
C --> F
D --> F
E --> F
F --> G[No key in Git, no key leaked]
第一原则:绝不硬编码
# ❌ 危险:Key 直接写在源码里
client = OpenAI(api_key="sk-or-v1-abc123...", base_url="...")
# ✅ 正确:从环境变量读
import os
client = OpenAI(api_key=os.environ["OPENROUTER_API_KEY"], base_url="...")
硬编码的 Key 会被代码搜索工具(如 GitHub 全站搜索)在数秒内发现,危险等级最高。
用 .env 文件管理本地 Key
pip install python-dotenv
项目根目录创建 .env:
OPENROUTER_API_KEY=sk-or-v1-...
GROQ_API_KEY=gsk_...
DEEPSEEK_API_KEY=sk-...
代码加载:
from dotenv import load_dotenv
load_dotenv() # 自动把 .env 注入 os.environ
关键:.env 必须加入 .gitignore:
# .gitignore
.env
.env.*
*.pem
secrets/
防误提交的 git 钩子
装 pre-commit 与 detect-secrets:
pip install pre-commit detect-secrets
pre-commit install
.pre-commit-config.yaml:
repos:
- repo: https://github.com/Yelp/detect-secrets
rev: v1.5.0
hooks:
- id: detect-secrets
args: ['--baseline', '.secrets.baseline']
这样每次 commit 都会扫描是否含 Key,发现就阻断。还可以加 gitleaks,规则更全。
生产环境:用密钥管理服务
不要把 .env 直接带进生产环境,改用 KMS:
- AWS:Secrets Manager 或 Parameter Store
- GCP:Secret Manager
- 阿里云:KMS 凭据管家
- 自建:HashiCorp Vault
示例(AWS Secrets Manager):
import boto3, json
def get_secret(name):
client = boto3.client("secretsmanager")
resp = client.get_secret_value(SecretId=name)
return json.loads(resp["SecretString"])["OPENROUTER_API_KEY"]
client = OpenAI(api_key=get_secret("prod/llm-keys"), base_url="...")
额外的运维清单
- 设置用量告警:在每家平台后台开启"日预算超限邮件告警",异常时第一时间发现。
- 按用途分 Key:测试、生产、CI 各用一把,出问题精准吊销。
- 定期轮换:每 90 天换一次,降低长期泄露风险。
- 限制 IP:部分平台支持白名单,可前置 Cloudflare Workers 加 IP 校验。
- 日志脱敏:打印请求体时把
Authorization头替换成***。
万一泄露了怎么办
- 立即去平台后台 吊销 Key。
- 查看用量日志,确认是否被滥用。
- 生成新 Key,更新所有部署环境。
- 用
git filter-repo清理历史中的泄露提交,并通知协作者重新 clone。
常见问题
.env已被提交:立刻吊销 Key,用git rm --cached .env移除,再重新生成。- CI 里怎么注入:用 GitHub Actions 的
secrets.OPENROUTER_API_KEY,在 workflow 里映射成 env。 - 多人共享:用 1Password / Vault 共享,而不是群里发截图。
- 审计追溯:在 KMS 里开启访问日志,谁取过哪个 secret 一清二楚。
安全习惯一旦养成,免费 API 用得才安心。
最佳实践
.env文件不入 Git:.gitignore加.env,CI 用 secret injection。- 生产用 Vault/AWS Secrets Manager:密钥 rotate、audit log、IAM 权限三层齐备。
- pre-commit hook 检测密钥:
detect-secrets或gitleaks自动扫描 staged 文件。 - 配额告警:每天 cron 查询
usage,剩余额度低于 30% 就发邮件/短信。 - 多 Key 隔离:dev/ci/prod 各一把 Key,单点泄露影响最小化。
🚀 立即开始:免费 API 一键调用
想要无需逐一注册、统一鉴权调用以上全部免费模型?Apishare.cc 提供统一 API Key,一个 Key 调用 100+ 模型,免费模型零成本直连。
👉 立即注册 Apishare.cc → 获取你的统一 API Key
📊 想看更多免费模型排行?查看 2026年9月 免费 LLM API 综合实力榜单 →
立即上手:APIShare 免费 API 目录
- 🆓 注册领取免费额度:立即注册 APIShare · 登录控制台
- 🔍 浏览全部免费 API 与实时榜单:APIShare 免费 API 目录
- 📊 查看免费 LLM API 排行:Free LLM API Rankings
免费 API 聚合平台说明
本文涉及的模型均由 APIShare 免费 API 聚合平台 统一接入,一份 Key 调用全站模型。
- 完整模型目录:APIShare 免费 API 目录
- 注册即送免费额度:注册领取 API Key