你可能会说:
- “AI 让我把 API Key 发给它,安全吗?”
- “密钥不小心提交到 GitHub 了,删掉那次提交就行吗?”
它是什么
密钥用来调用付费接口、管理托管平台、读写数据库。它不认人,只认这串字符:任何拿到它的人,都拥有和你一样的权限。
密钥只能放在后端或本地的环境变量里,不能写进前端代码、不能提交进仓库、不该贴进聊天记录。一旦出现在这些地方,就要当作已经泄露:去后台作废,换一把新的。
"删掉那次提交"不够:仓库历史、聊天记录、日志里可能都有副本。唯一可靠的补救是作废旧密钥。
打个比方
像家门钥匙:借给装修师傅用完,要记得收回或者换锁。钥匙被复制过一把,就再也说不清还有谁能开门。
在这个网站里
为了让 AI 帮忙查部署日志、部署跳转,这个网站的托管平台 API 令牌被直接贴进了和 AI 的对话。每次用完都提醒过"记得作废",却一直拖着没做(第 11 课的事故)。
容易搞混的地方
常见误解
仓库是私有的,把密钥提交进去也没关系
正确理解
仓库可能被分享、被克隆到别的机器、被连接的工具读取。密钥进了仓库历史,就很难确认它没被别人看到。
你可以这样告诉 AI
复制下面这段,贴给你的 AI
这个任务需要用到哪些密钥?每把密钥需要的最小权限是什么?请告诉我在哪里创建、设置多久过期、放在哪个环境变量里;不要让我把密钥贴进对话。
接下来去哪
先知道
- 环境变量——程序启动时从运行环境里读取的配置,比如数据库地址、密钥、端口。同一份代码,换一套环境变量就换一种行为。
接着看
- 最小权限——只给完成这件事所必需的权限,多一项都不给;需要时再加,用完就收回。
在这些课里出现
相关的真实事故