保护nodeJS数据库configuration文件
我创build了一个存储我所有数据库连接信息的config.js文件。 然后我需要在我的db-connect.js中。 configuration文件是gitignored所以它不会被提交。 但是,我想知道这是否安全,还是可以做更多来保证这些信息?
Config.js现在看起来像这样:
var dbconfig = { database: 'dbname', username: 'dbusername', password: 'dbpassword' }; module.exports = dbconfig;
在这里也有类似的问题,但都只是说不提交文件 – 但是,对我来说,这似乎仍然不是安全的?
有可能没有一个正确的答案,这是你的select
-
环境variables:我已经看到人们更喜欢将它们的configuration保存在环境variables中,或者在它们的〜/ .bashrc文件中临时存储一个特定的进程,例如:
在〜/ .bashrc
export DB_USER=username
export DB_PASS=password
临时 DB_USER =用户名DB_PASS =密码节点./app.js
-
让你的configuration文件从项目中分离出来,并从绝对path中请求它,例如:
var config = require('/<path>/<to>/config.js');
所以这样你将确保你的应用程序永远不会提供你的configuration文件,因为它不是web根目录的一部分。
-
encryption您的configuration文件,并在您每次重新启动应用程序时对其进行解密并读取。
在大多数应用程序中,我倾向于1和2。
我想添加一个build议,因为保持configuration文件中的configuration秘密绝对是一个安全性(和可pipe理性)的问题。 您可以使用https://www.npmjs.com/package/masterkey将机密信息存储在Azure Key-Vault等安全的地方!