安全警报:OpenAI密钥泄露背后的教训与防范升级

464 阅读2分钟

前言

最近在写掘金的时候,代码复制的时候不小心把自己的openai密钥也给复制了。昨天我上线一尝试,好家伙每日免费100次token机会已使用完。。。
在平时码代码的时候我一般都是直接使用的密钥作为变量使用,没有考虑到安全性问题。上网搜了一下,基本这些隐私数据密码之类的,都是存储在环境变量里面的。那么nodeJS里面一般是如何存储和使用环境变量的呢?

.env文件

.env 文件是一个用于存储环境变量的文件,通常被用于配置开发、测试和生产环境中的应用程序。它通常包含应用程序运行所需的各种敏感信息,如数据库凭据、API密钥、第三方服务凭证等。.env 文件的内容通常是以键值对的形式出现,每行一个环境变量。如下图:

image.png

.env 文件通常不会被添加到版本控制系统中,以防止敏感信息被推送到公共或共享的代码仓库。在git文件上传里,一般会默认上传.env文件。.gitignore 文件用于指定 Git 应该忽略的不需要跟踪的文件和目录。要防止 .env 文件被上传,您需要在 .gitignore 文件中添加以下内容:

.env

这行告诉 Git 忽略当前目录下的 .env 文件。

Node中如何使用.env文件里的环境变量?

在实际使用中,node应用程序通常会在启动时加载 .env 文件,并将文件中的变量值加载到环境变量中。 在代码中想要使用导入.env文件里面的环境变量,你需要使用 dotenv 库来加载 .env 文件。

npm i dotenv
require('dotenv').config();//导入dotenv模块并且加载.env文件里面的环境变量


require('dotenv').config();这行代码会自动查找项目根目录下的 .env 文件,并加载其中的环境变量。如果 .env 文件位于其他位置,可以通过传递路径参数来指定:

require('dotenv').config({ path: './path/to/your/.env' });

加载完毕之后就可以通过下面代码拿到环境变量 格式为process.env.(变量名)

process.env.OpenAI_API_KEY1

总结

在 Node.js 应用程序中妥善保管您的 OpenAI 密钥是非常重要的,以防止密钥泄露和安全问题。不然你可能就会像我一样,密钥直接报废了555。。。
如果你还喜欢我的文章话,请帮忙点个赞吧!>_<