MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Ocultar corretamente as credenciais do banco de dados


...Tenho meu arquivo de conexão db e outro arquivo "protegido", onde estão minhas credenciais, e esse arquivo está incluído em .gitignore. Eu importo e chego aos dados..

A maneira correta de fazer isso é usar variáveis ​​ambientais.

Usar variáveis ​​ambientais


As variáveis ​​ambientais são definidas no ambiente , ou seja, sua máquina de desenvolvimento local ou o servidor de produção remoto. Em seguida, em seu aplicativo, você lê as variáveis ​​de ambiente e as usa adequadamente.

Há (pelo menos) algumas razões pelas quais geralmente é feito assim:
  • As credenciais não existem em um arquivo que possa ser lido por alguém que esteja visualizando o conteúdo do repositório. Alguém clonando o repositório não precisa saber seu credenciais do banco de dados.
  • As credenciais provavelmente são diferentes entre os ambientes. Você provavelmente está usando um banco de dados diferente em sua máquina de desenvolvimento local e um banco de dados diferente em seu servidor de produção remoto.

Veja como você define as variáveis ​​de ambiente (isso é para Linux, outros sistemas operacionais podem ser diferentes):
$ export MONGO_DB_USERNAME=foo
$ export MONGO_DB_PASSWORD=bar

e veja como você os lê no Node.js:
console.log(process.env.MONGO_DB_USERNAME) // logs 'foo'
console.log(process.env.MONGO_DB_PASSWORD) // logs 'bar'

ou passe variáveis ​​para o processo ao iniciar


Alternativamente, você pode passar variáveis ​​ao iniciar o processo assim:
$ MONGO_DB_USERNAME=foo MONGO_DB_PASSWORD=bar node app.js

No entanto, isso geralmente é desencorajado, pois você provavelmente está iniciando seu processo através do script npm start. Desde package.json , onde o npm start comando é definido, está sempre comprometido com o repositório, ele anula todo o propósito de ocultar as credenciais.