存储用户名和密码并将其传递给数据库连接配置的正确方法?
Proper way to store and pass username and password to config for database connection?
我刚刚使用 Express 和 Tedious 创建了我的第一个 React 后端。存储 and/or 传递的用户名和密码以连接到数据库的正确方法是什么? 'back-end' 是否足够安全,可以像这样内联?
const express = require('express')
const app = express()
app.get('/dbCall', (req, res) => {
var Connection = require('tedious').Connection;
var Request = require('tedious').Request;
var config = {
"server": "localhost",
"authentication": {
"type": "default",
"options": {
"userName": "myUsername",
"password": "myPassword"
}
},
"options": {
"port": 1533,
"database": "myDB",
}
}
...
}
存储 'secret' 数据的一种方法是使用 dotenv 模块。
1.安装模块:
npm install dotenv
2。在您的根目录中创建“.env”文件(与 package.json 相同的目录)
.env 的内容应该如下所示(是的,它只是纯文本):
APP_SERVER=localhost
APP_USERNAME=myUsername
APP_PASSWORD=myPassword
APP_PORT=1533
APP_DATABASE=myDB
3。设置 dotenv(您希望在您的应用程序中尽早执行此操作)
// example where to put it
const express = require("express");
const app = express();
const dotenv = require("dotenv");
dotenv.config();
4。利润
const express = require('express')
const app = express()
const dotenv = require("dotenv");
dotenv.config();
app.get('/dbCall', (req, res) => {
var Connection = require('tedious').Connection;
var Request = require('tedious').Request;
var config = {
"server": process.env.APP_SERVER,
"authentication": {
"type": "default",
"options": {
"userName": process.env.APP_USERNAME,
"password": process.env.APP_PASSWORD
}
},
"options": {
"port": process.env.APP_PORT,
"database": process.env.APP_DATABASE,
}
}
}
注:
如果您使用 git,则必须将“.env”文件放入 .gitignore,如果您已经推送了秘密数据,则可能需要考虑删除以前的提交。
编辑:
如果您多次使用数据库配置对象,我建议将您的配置放在一个单独的文件中。
- 创建“databaseConfig.js”文件
module.exports = {
server: process.env.APP_SERVER,
authentication: {
type: "default",
options: {
userName: process.env.APP_USERNAME,
password: process.env.APP_PASSWORD
}
},
options: {
port: process.env.APP_PORT,
database: process.env.APP_DATABASE
}
}
- 在您的代码中需要“databaseConfig.js”
const config = require("path/to/databaseConfig.js");
我刚刚使用 Express 和 Tedious 创建了我的第一个 React 后端。存储 and/or 传递的用户名和密码以连接到数据库的正确方法是什么? 'back-end' 是否足够安全,可以像这样内联?
const express = require('express')
const app = express()
app.get('/dbCall', (req, res) => {
var Connection = require('tedious').Connection;
var Request = require('tedious').Request;
var config = {
"server": "localhost",
"authentication": {
"type": "default",
"options": {
"userName": "myUsername",
"password": "myPassword"
}
},
"options": {
"port": 1533,
"database": "myDB",
}
}
...
}
存储 'secret' 数据的一种方法是使用 dotenv 模块。
1.安装模块:
npm install dotenv
2。在您的根目录中创建“.env”文件(与 package.json 相同的目录)
.env 的内容应该如下所示(是的,它只是纯文本):
APP_SERVER=localhost
APP_USERNAME=myUsername
APP_PASSWORD=myPassword
APP_PORT=1533
APP_DATABASE=myDB
3。设置 dotenv(您希望在您的应用程序中尽早执行此操作)
// example where to put it
const express = require("express");
const app = express();
const dotenv = require("dotenv");
dotenv.config();
4。利润
const express = require('express')
const app = express()
const dotenv = require("dotenv");
dotenv.config();
app.get('/dbCall', (req, res) => {
var Connection = require('tedious').Connection;
var Request = require('tedious').Request;
var config = {
"server": process.env.APP_SERVER,
"authentication": {
"type": "default",
"options": {
"userName": process.env.APP_USERNAME,
"password": process.env.APP_PASSWORD
}
},
"options": {
"port": process.env.APP_PORT,
"database": process.env.APP_DATABASE,
}
}
}
注: 如果您使用 git,则必须将“.env”文件放入 .gitignore,如果您已经推送了秘密数据,则可能需要考虑删除以前的提交。
编辑: 如果您多次使用数据库配置对象,我建议将您的配置放在一个单独的文件中。
- 创建“databaseConfig.js”文件
module.exports = {
server: process.env.APP_SERVER,
authentication: {
type: "default",
options: {
userName: process.env.APP_USERNAME,
password: process.env.APP_PASSWORD
}
},
options: {
port: process.env.APP_PORT,
database: process.env.APP_DATABASE
}
}
- 在您的代码中需要“databaseConfig.js”
const config = require("path/to/databaseConfig.js");