与.env文件相比,在credentials.js文件中存储敏感凭据有什么区别?
使用module.exports,您可以这样写:
const KEY = require("./credentials.js");而对于.env文件,您可以这样写:
const KEY = process.env.KEY;在这两种情况下,您都实现了相同的目标:将某些变量设置为“全局”,并对其进行全局访问。为什么人们使用.env和dotenv而不是只使用Node的内置module.exports系统?
发布于 2021-02-11 14:06:17
环境变量是在机器(系统)上定义的。环境变量可以在同一系统上运行的多个应用程序上使用。
导出的变量仅限于您正在运行的应用程序。
在您的示例中为:如果您希望在3个服务器(开发人员、质量保证人员、生产人员)上部署应用程序,但是使用不同的凭据,那么每次部署时都更改凭据是没有意义的。即使您为每个服务器定义凭据,它也必须是静态的,如果您想要更改它,您必须在文件中进行更改,并再次部署应用程序以反映这些更改。如果是环境变量,您只需在目标系统上更改它并重新启动服务器,因此无需再次部署应用程序。
当多个环境变量发生变化时,管理起来就会变得一团糟。此外,在与其他服务集成时,环境变量也很有用。
对于环境变量中的安全性,您可以读取this
存储凭据时:
compromised
https://stackoverflow.com/questions/66148954
复制相似问题