【问题标题】:Storing passwords on NodeJS configuration在 NodeJS 配置中存储密码
【发布时间】:2021-03-23 14:17:59
【问题描述】:

在 .NET 中,每个应用程序都有自己的 app.config 或 web.config 文件,我们可以在其中存储我们的配置,我正在寻找与 NodeJS 等效的东西,我知道创建 config.json 文件会很容易并且只需要它,但挑战在于我的一些配置实际上是我想要加密的密码。

我想知道 NodeJS 是否有任何与 apsnet_regiis.exe 等效的工具,可用于加密整个配置或部分配置,如果没有,节点保护应用程序所需的密码和密钥的最佳实践是什么。

https://www.codeproject.com/Tips/877258/How-to-Encrypt-Web-config-Using-aspnet-regiis-exe

【问题讨论】:

    标签: node.js encryption configuration


    【解决方案1】:

    你可以使用 .env

    把这个放到你的主js文件中

    const dotenv = require('dotenv') // .env file
    dotenv.config() // using .env
    

    要安装它,请 npm install dotenv

    然后在你的根文件夹中,创建文件 .env

    您可以将敏感信息放入 .env 文件中

    .env 文件的例子:

    PORT = 3000
    COOKIESECRET = 'yourSecretHere'
    COOKIENAME = 'cookie'
    

    要使用这些设置,您可以使用 process.env.PORT 来访问该变量。

    例如:

    const PORT = process.env.PORT
    

    然后它将访问该文件 .env,找到 PORT,并获取该数据。

    附加信息: https://www.npmjs.com/package/dotenv

    【讨论】:

    • 有些人反对在配置文件中存储纯文本,有什么标准可以安全地加密密码吗? owasp.org/www-community/vulnerabilities/…
    • @EduardoWada 用于您的环境变量。它与您的代码库分开存储。如果要存储密码,请按照正常方式对其进行加密并将其保存到数据库中。或者您可以使用 .env 并存储密码的哈希值,然后解密哈希值以获取密码。就像我以前做过的那样,这也将起作用。但是您的密码将存储在您的数据库中。
    猜你喜欢
    • 1970-01-01
    • 2021-08-09
    • 2020-01-18
    • 2010-11-09
    • 2019-08-11
    • 2017-06-27
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    相关资源
    最近更新 更多