2016-11-15 81 views
2

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

Config.js只是看起来像这样的时刻:

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

module.exports = dbconfig; 

这里对于类似的问题,但都只是说没有提交文件 - 但是,对我来说这仍似乎并不如尽可能安全?

+0

不,这绝对不安全。加密此文件并将其保留在Webroot之外。 – Kai

回答

0

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

  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。

0

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