环境变量与密钥安全:别把 API Key 提交到 GitHub

Vibe Coding 部署 90% 的线上事故来自环境变量没配对或密钥泄露。讲清什么是环境变量、为什么不能写死代码、被提交了怎么救。

登录后收藏
内容说明

折腾鸭可能通过推广链接获得佣金,但不会影响编辑结论,也不会增加你的支付价格。

在 Vibe Coding 部署里,90% 的线上事故都跟「环境变量没配对」或「密钥泄露」有关(复习见 部署全流程)。这篇专门把这块讲透,照着做能避开绝大多数安全事故。

一、什么是环境变量

简单说,环境变量就是「程序运行时才读取的配置」,比如 API Key、数据库地址、密码。它跟代码分开存放,代码里只写 process.env.XXX 去读,不把真实值写死在代码里。

二、为什么不能写死在代码 / 提交到 GitHub

  • 泄露:代码一旦推到 GitHub(哪怕设了私有,也可能被成员、被 fork、被历史记录泄露),里面的密钥任何人都能拿去用,你的额度会被刷爆、账单爆炸。
  • 不一致:本地能跑、线上报错,十有八九是本地 .env 和平台填的值对不上。

三、正确做法三步

  1. 代码里用变量:把 const key = "sk-xxxx" 改成 const key = process.env.MY_API_KEY。
  2. 本地放 .env:建一个 .env 文件存真实值;再建一个 .env.example 只列变量名(不写真值)当团队准绳。
  3. 加进 .gitignore:确保 .env 永远不会被 git push 出去。然后在部署平台的控制台里手动填这些变量。

四、已经被提交了怎么办

立刻做三件事:① 到对应服务商吊销并重新生成密钥;② 从 Git 历史里彻底删掉(用 git filter-repo 或 BFG 工具);③ 之后改用上面的正确流程。注意:改完代码再 commit 没用,历史里还留着旧密钥。

五、前端 vs 后端的红线

前端代码(浏览器里运行的 .js)任何人都看得见,所以前端里绝不能放私密密钥,只能放「本来就公开」的值(如公开的应用 ID)。真正保密的密钥只能放在后端环境变量里。AI 生成代码时最容易把密钥写进前端 .js,部署前务必全局搜 sk-、Bearer、API_KEY = 排查一遍。

相关阅读

内容持续更新

最近更新:2026-08-27。信息发生变化时,我们会同步修订。

去论坛交流