技术与工程已解决
环境变量和 .env 是什么?怎样避免 API Key 泄露?
理解环境变量与 .env 的边界,建立密钥忽略、示例配置和泄漏轮换流程。
问题正文
教程让我新建 .env 并填写 API Key,但我不理解它和普通配置文件的区别。
怎样在本地使用密钥,同时确保它不会被上传到 GitHub 或暴露给浏览器?
理解环境变量与 .env 的边界,建立密钥忽略、示例配置和泄漏轮换流程。
问题正文
教程让我新建 .env 并填写 API Key,但我不理解它和普通配置文件的区别。
怎样在本地使用密钥,同时确保它不会被上传到 GitHub 或暴露给浏览器?
ANSWERS
回答内容
环境变量把会变化或敏感的配置放在代码外;.env 是本地开发常用的保存形式,不应该提交到 Git。项目应提供不含真实值的 .env.example。
把本地密钥写入 .env.local,并加入 .gitignore。
提交只包含键名的 .env.example。
应用启动时检查必需变量是否存在。
在部署平台分别配置预览与生产环境变量。
# .env(只保存在本地)
OPENAI_API_KEY=replace-me
# .gitignore
.env
.env.local只从 GitHub 删除 .env 不足以消除泄漏,历史仍可能保留;应立刻撤销并轮换密钥。
能被前端打包读取的环境变量通常对浏览器用户可见,不应放服务端密钥。
Node.js:Read environment variables:https://nodejs.org/en/learn/command-line/how-to-read-environment-variables-from-nodejs
GitHub Docs:Secret scanning:https://docs.github.com/en/code-security/concepts/secret-security/secret-scanning
Vercel:Environment variables:https://vercel.com/docs/environment-variables