Node.js knex - 保护用于登录数据库的密码
Node.js knex - Securing the password used for logging into database
我在名为 knexfile.js
的文件中有以下代码
module.exports = {
development: {
client: 'mysql',
connection: {
database: 'myDatabase',
timezone: 'Z',
user: 'root',
password: 'myPassword',
host: '127.0.0.1'
},
pool: {
min: 2,
max: 10
},
migrations: {
tableName: 'myMigrationTable'
}
}
};
上面代码中的 myPassword 是明文。在我的生产服务器上,我绝对不希望我的代码中的明文密码被我的应用程序用来对我的数据库进行身份验证。我也不希望它以明文形式存放在我服务器上的文件中。
knex 或 node 中是否有一种方法可以轻松处理安全地登录到我的数据库?我是否应该简单地加密我的密码,将其保存在我服务器上的一个文件中,然后在它要登录时使用我的 webapp 解密它?
最佳做法是使用环境变量。
knex = require('knex')({
client: 'mysql',
connection: process.env.DATABASE_URL
})
我在名为 knexfile.js
的文件中有以下代码module.exports = {
development: {
client: 'mysql',
connection: {
database: 'myDatabase',
timezone: 'Z',
user: 'root',
password: 'myPassword',
host: '127.0.0.1'
},
pool: {
min: 2,
max: 10
},
migrations: {
tableName: 'myMigrationTable'
}
}
};
上面代码中的 myPassword 是明文。在我的生产服务器上,我绝对不希望我的代码中的明文密码被我的应用程序用来对我的数据库进行身份验证。我也不希望它以明文形式存放在我服务器上的文件中。
knex 或 node 中是否有一种方法可以轻松处理安全地登录到我的数据库?我是否应该简单地加密我的密码,将其保存在我服务器上的一个文件中,然后在它要登录时使用我的 webapp 解密它?
最佳做法是使用环境变量。
knex = require('knex')({
client: 'mysql',
connection: process.env.DATABASE_URL
})