保护 nodeJS 数据库配置文件

Securing a nodeJS database config file

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

Config.js 目前看起来像这样:

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

 module.exports = dbconfig;

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

此问题可能没有正确答案,这是您的选择

  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');

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

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

在大多数申请中我更喜欢 1 和 2。

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