node.js - 如何改进管理 Heroku 上托管的 NodeJS 应用程序的秘密 API 密钥的方式
问题描述
我已经根据dotenv文档创建了一个 .env 文件,并将我所有的 API 密钥都放在了文件中。我还将这些环境变量作为配置变量添加到我的 Heroku 实例中。因此,我的源代码中不再引用秘密 API 字符串。
但是,我没有 gitignored .env 文件,因为 git repo 设置为私有并且我是它的唯一所有者,但是我已经 slugignored .env 文件以阻止它被推送到 Heroku。
我有理由不 gitignore .env 文件安全吗?我正在采取合理和标准的做法来保护我的秘密 API 字符串吗?如果没有,我还能如何改进我的设置以提高我的网络应用程序的安全性?
解决方案
您.env
在 Heroku 应用程序上的信誉是否相同?如果是这样,这很糟糕。
访问您的 GitHub 帐户的人也可以访问您的 Heroku 应用程序中的凭据。看看这个Gentoo 回顾展,他们的 GitHub 组织遭到入侵正是发生的事情。
您的.env
文件应该只有本地设置。例如,它应该localhost
作为数据库调用,而不是您的生产数据库 URL。
然后,一旦一切都与生产分离,这个文件就可以安全地签入您的存储库。访问您的代码的人将无法访问您的生产数据。
推荐阅读
- node.js - Stripe 将 paymentMethod 添加到试用订阅并稍后验证信用卡
- java - 将 HATEOAS 对象作为 websocket 消息广播,其 Content-Type 不是 application/json
- javascript - 得到未捕获的类型错误:尝试清除画布时无法读取未定义或 null 的属性“getContext”
- svg - 当我们对 SVG 应用矩阵变换时,圆的半径会发生什么变化?
- mysql - 如何在sql中将日期格式从YYYY-MM-DD转换为YYYY-MM
- c# - 使用 JavaScript 动态添加表单控件并在 ASP.Net Core 中处理表单
- javascript - setTimeout 在登录页面上不起作用客户端
- python - 如果用户输入任何内容,则循环列表继续
- string - SQLite csv 导入问题值 inf.0
- flutter - 如何在Appbar颤动上重叠项目