【发布时间】:2020-06-07 03:52:08
【问题描述】:
我正在尝试使用 express 框架构建 node.js 服务器,并且我想在我的服务器中存储管理 API 的私钥。
我现在使用 .env 文件来存储这些值,并且在我的路线中,通过调用 process.env.ADMIN_KEY 来使用该值。
问题
处理私人数据是否安全?还是有比这更好的方法?
【问题讨论】:
标签: node.js express security dotenv
我正在尝试使用 express 框架构建 node.js 服务器,并且我想在我的服务器中存储管理 API 的私钥。
我现在使用 .env 文件来存储这些值,并且在我的路线中,通过调用 process.env.ADMIN_KEY 来使用该值。
问题
处理私人数据是否安全?还是有比这更好的方法?
【问题讨论】:
标签: node.js express security dotenv
将您的秘密存储在 .env 文件中比存储在源代码本身中更安全。但你可以做得更好。以下是我见过的机密管理方式,从最不安全到最安全:
对代码中的秘密进行硬编码。
将机密放入从 .env 文件加载的环境变量中。
将机密放入专门的机密管理器中,例如 Google Cloud 的 Vault by HashiCorp 或 Secret Manager。
所以选择实际上是在上面的第 2 项和第 3 项之间。你选择哪一个取决于你的秘密有多敏感,以及使用专门的秘密管理器需要多少额外的工作。例如,如果您的项目在 Google Cloud Platform 上运行,则 Secret Manager 就是 one API call away。在其他主要的云平台上可能同样容易,但我对它们没有第一手经验。
【讨论】:
简单的答案是YES,.env 用于存储密钥和秘密。它不会推送到您的存储库,即 github 或 bitbucket 或您存储代码的任何地方。这样就不会暴露了。
以下是正确使用的教程链接:
【讨论】:
.env 中的那些秘密值?
是的。可以使用加密值添加额外的安全检查。还要避免在公共仓库中签入您的 .env 文件。
【讨论】:
您可以并且应该将机密、凭据或私人数据安全地存储在 .env 中,这是您项目中的一个安全环境配置部分,对于存储 API 密钥和应用程序凭据很有用。只有受邀的协作者才能看到您的 .env 文件的内容。
【讨论】: