保护 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;
这里也有类似的问题,但都只是说不要提交文件 - 然而,对我来说,这似乎还是不够安全?
此问题可能没有正确答案,这是您的选择
环境变量:
我看到人们更喜欢将他们的配置保存在环境变量中,或者在他们的 ~/.bashrc 文件中临时用于特定进程,例如:
~/.bashrc
export DB_USER=username
export DB_PASS=password
临时
DB_USER=用户名DB_PASS=密码节点./app.js
将您的配置文件与项目分开,并从绝对路径中获取它,例如:
var config = require('/<path>/<to>/config.js');
所以这样你将确保你的应用程序永远不会提供你的配置文件,因为它不是网络根目录的一部分。
加密您的配置文件,并在每次您的应用程序重新启动并读取它时解密它。
在大多数申请中我更喜欢 1 和 2。
我想再添加一个建议,因为将配置机密保存在配置文件中绝对是一个安全(和可管理性)问题。您可以使用 https://www.npmjs.com/package/masterkey 将机密存储在安全的地方,例如 Azure Key-Vault!
我创建了一个 config.js 文件来存储我所有的数据库连接信息。然后我在我的 db-connect.js 中需要这个。配置文件被 gitignored,所以它不会被提交。但是,我想知道这是否安全,或者是否可以采取更多措施来保护此信息?
Config.js 目前看起来像这样:
var dbconfig = {
database: 'dbname',
username: 'dbusername',
password: 'dbpassword'
};
module.exports = dbconfig;
这里也有类似的问题,但都只是说不要提交文件 - 然而,对我来说,这似乎还是不够安全?
此问题可能没有正确答案,这是您的选择
环境变量: 我看到人们更喜欢将他们的配置保存在环境变量中,或者在他们的 ~/.bashrc 文件中临时用于特定进程,例如:
~/.bashrc
export DB_USER=username
export DB_PASS=password
临时 DB_USER=用户名DB_PASS=密码节点./app.js
将您的配置文件与项目分开,并从绝对路径中获取它,例如:
var config = require('/<path>/<to>/config.js');
所以这样你将确保你的应用程序永远不会提供你的配置文件,因为它不是网络根目录的一部分。
加密您的配置文件,并在每次您的应用程序重新启动并读取它时解密它。
在大多数申请中我更喜欢 1 和 2。
我想再添加一个建议,因为将配置机密保存在配置文件中绝对是一个安全(和可管理性)问题。您可以使用 https://www.npmjs.com/package/masterkey 将机密存储在安全的地方,例如 Azure Key-Vault!