【问题标题】:Securing a nodeJS database config file保护 nodeJS 数据库配置文件
【发布时间】:2017-03-29 05:41:00
【问题描述】:

我创建了一个 config.js 文件来存储我所有的数据库连接信息。然后我在我的 db-connect.js 中需要这个。配置文件是 gitignored,所以它不会被提交。但是,我想知道这是否安全,或者是否可以采取更多措施来保护这些信息?

Config.js 现在看起来像这样:

var dbconfig = {
    database: 'dbname',
    username: 'dbusername',
    password: 'dbpassword'
};

 module.exports = dbconfig;

这里也有类似的问题,但都只是说不要提交文件 - 但是,对我来说,这似乎仍然不够安全?

【问题讨论】:

  • 不,这绝对不安全。加密此文件并将其保存在 webroot 之外。

标签: node.js database config


【解决方案1】:

这个问题可能没有正确答案,这里是你的选择

  1. 环境变量: 我看到人们更喜欢将他们的配置保存在环境变量中,或者在他们的 ~/.bashrc 文件中临时用于特定过程,例如:

    ~/.bashrc

    export DB_USER=username

    export DB_PASS=password

    临时 DB_USER=用户名 DB_PASS=密码节点./app.js

  2. 将您的配置文件与项目分开,并从绝对路径中要求它,例如:

    var config = require('/<path>/<to>/config.js');

    因此,这样您将确保您的应用程序永远不会提供您的配置文件,因为它不是 Web 根目录的一部分。

  3. 加密您的配置文件并在您每次应用程序重新启动并读取它时对其进行解密。

在大多数应用程序中,我首选 1 和 2。

【讨论】:

    【解决方案2】:

    我想再添加一个建议,因为将配置机密保存在配置文件中绝对是一个安全(和可管理性)问题。您可以使用https://www.npmjs.com/package/masterkey 将机密存储在 Azure Key-Vault 等安全位置!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-03
      • 1970-01-01
      • 1970-01-01
      • 2011-09-13
      • 1970-01-01
      • 2012-10-24
      • 1970-01-01
      • 2016-08-17
      相关资源
      最近更新 更多