本文适合你,如果——

  • 你是用 AI 做东西的非程序员:产品、运营、创业者、独立 Builder。

本文不适合你,如果——

  • 你是专业工程师,本文对你来说是废话。

上一篇我们聊了数据存储与数据库,解决了让应用持久保存数据的问题。

随着你的应用功能越来越丰富,你不可避免地需要调用各种第三方服务——比如 OpenAI、Claude 的大模型 API,云数据库的连接密码,或者支付接口的密钥。

大多数非程序员开始用 AI 写代码时,根本没听过“环境变量”这个概念。不知道这些敏感的 API 密钥应该藏在哪里。而 AI 经常不能面面俱到,只要你不提醒,它可能就把敏感信息直接硬编码在代码里。

这时候,最容易发生的惨剧出现了:前脚刚把代码推送到 GitHub,后脚就收到短信或邮件通知——你的 API 密钥被盗用,额度几秒钟内被刷爆,甚至欠下高额账单。

这一篇,咱们就来聊聊怎么给你的密钥加把锁 —— 环境变量(Environment Variables)与密钥安全


一、密钥安全的三条红线

在聊具体的做法之前,先记住三条不可逾越的红线:

  1. 绝对不要把 API Key 直接写在代码文件里(Hardcode/硬编码):代码会被分享、被上传,一旦泄露,就很容易被盗用。很多黑灰产爬虫就等着你把密钥上传到 GitHub 呢!
  2. 绝对不要把包含真实密钥的配置文件上传到 GitHub:哪怕是私有仓库,也可能因为误操作变成公开仓库。
  3. 前端代码(浏览器里跑的代码)里绝对不能出现安全密钥:最容易踩坑的就是对象存储前端直传(比如上传图片时,为了省事把云存储的访问密钥直接写在前端代码里),等于把整个文件存储库公开送人。

二、那怎么办?

解决这个问题的方法非常简单:代码和密钥分离

我们通常用环境变量来存储密钥。

什么是环境变量(Environment Variables)?

简单来说,环境变量是程序运行时才通过系统接口去读取的信息,它不直接写在代码里

代码里只需要写上变量的名字(比如 process.env.OPENAI_API_KEY),至于这个名字背后具体的密钥是什么,则由程序运行时的环境(你的电脑操作系统、云服务器配置,或者本地的 .env 文件)来提供。这样一来,代码文件里就没有敏感信息了。

在本地开发时,我们通常使用一个名为 .env 的文件来管理这些环境变量。

为什么本地开发的时候不直接在系统里设置环境变量,而是要用 .env 文件? 因为如果你有多个项目,每个项目用不同的 API Key,直接在操作系统里配环境变量会非常混乱且容易冲突;而 .env 文件就放在当前项目根目录下,起到项目之间环境隔离的作用,还能方便查看和修改。

核心机制:.env.gitignore 组合拳

1. .env 文件:专门用来放你的真实密钥(例如 OPENAI_API_KEY=sk-xxxx)。这个文件只停留在你自己的电脑或服务器上

  1. .env.example 文件:一个模版文件,里面只写结构不写真实 Key(例如 OPENAI_API_KEY=your_key_here),这个文件可以上传到 GitHub,方便别人或你自己以后参考。
  2. .gitignore 文件:这相当于一份“禁止上传清单”。只要在里面写上一行 .env,Git 就会自动忽略它,再也不用担心误将密钥推送到网上。

三、AI 施工指南

AI 写代码时,如果你不在提示词里约束好,它可能就不会考虑这方面的问题。

1. 要求代码必须从环境变量读取 Key

开工时明确跟 AI 说明:

所有 API 密钥、数据库连接字符串和敏感配置,严禁硬编码在代码中。 必须统一从环境变量中读取。

2. 自动生成 .env.env.example

让 AI 顺手把模版准备好:

请帮我创建 .env.example 配置文件模版,并在 .gitignore 中确保加入 .env,防止泄漏。

3. 防范前端泄露

如果你的项目包含前端代码,你需要明确告知 AI:

涉及到付费 API 的 Key,必须在后端调用,绝对不能暴露在前端代码中。


四、救火指南

如果不小心泄露了怎么办?

万一哪天不小心把带有真实 Key 的代码推到了 GitHub,记住这三步救火措施:

  1. 第一时间内去平台撤销密钥:到 OpenAI、Claude 或相应的第三方服务后台,直接删除或废弃泄露的 Key,重新生成一个新的。(改代码是没有用的,旧 Key 只要泄露过就必须作废)
  2. 清理 Git 历史记录:不要以为删除了那行代码再提交一次就安全了,Git 历史记录里依然能查到历史版本。需要让 AI 帮你清理 GitHub 上的 Commit 记录或使用工具强行重置。
  3. 检查账单与额度限制:在各平台后台设置“每月用量上限(Hard Limit)”,防止万一泄露时造成无法承受的经济损失。

写在最后

搞定环境变量,你就为你的应用筑起了一道最基础的安全防线。

如果觉得有帮助,欢迎关注、点赞、转发。你最近有用 AI 做什么东西吗?欢迎在评论区聊聊你踩过的坑。