保护nodeJS数据库configuration文件

我创build了一个存储我所有数据库连接信息的config.js文件。 然后我需要在我的db-connect.js中。 configuration文件是gitignored所以它不会被提交。 但是,我想知道这是否安全,还是可以做更多来保证这些信息?

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

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

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

有可能没有一个正确的答案,这是你的select

  1. 环境variables:我已经看到人们更喜欢将它们的configuration保存在环境variables中,或者在它们的〜/ .bashrc文件中临时存储一个特定的进程,例如:

    在〜/ .bashrc

    export DB_USER=username

    export DB_PASS=password

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

  2. 让你的configuration文件从项目中分离出来,并从绝对path中请求它,例如:

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

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

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

在大多数应用程序中,我倾向于1和2。

我想添加一个build议,因为保持configuration文件中的configuration秘密绝对是一个安全性(和可pipe理性)的问题。 您可以使用https://www.npmjs.com/package/masterkey将机密信息存储在Azure Key-Vault等安全的地方!