MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Korrektes Ausblenden von Datenbankanmeldeinformationen

... Ich habe meine db-Verbindungsdatei und eine andere "geschützte" Datei, in der sich meine Anmeldeinformationen befinden, und diese Datei ist in .gitignore enthalten. Ich importiere es und erreiche die Daten..

Der richtige Weg, dies zu tun, ist die Verwendung von Umgebungsvariablen.

Umgebungsvariablen verwenden

Umgebungsvariablen werden in environment gesetzt , d. h. Ihr lokaler Entwicklungscomputer oder der Remote-Produktionsserver. Dann lesen Sie in Ihrer App die Umgebungsvariablen und verwenden sie entsprechend.

Es gibt (mindestens) ein paar Gründe, warum es normalerweise so gemacht wird:

  • Die Anmeldeinformationen existieren nicht in einer Datei, die von jemandem gelesen werden kann, der den Inhalt des Repositorys anzeigt. Jemand, der das Repository klont, muss Ihre nicht kennen Datenbankanmeldeinformationen.
  • Die Anmeldedaten unterscheiden sich wahrscheinlich zwischen den Umgebungen. Sie verwenden wahrscheinlich eine andere Datenbank auf Ihrem lokalen Entwicklungscomputer und eine andere Datenbank auf Ihrem Remote-Produktionsserver.

So setzen Sie Umgebungsvariablen (dies gilt für Linux, andere Betriebssysteme können anders sein):

$ export MONGO_DB_USERNAME=foo
$ export MONGO_DB_PASSWORD=bar

und so lesen Sie sie in Node.js:

console.log(process.env.MONGO_DB_USERNAME) // logs 'foo'
console.log(process.env.MONGO_DB_PASSWORD) // logs 'bar'

oder beim Start Variablen an den Prozess übergeben

Alternativ können Sie beim Starten des Prozesses Variablen wie folgt übergeben:

$ MONGO_DB_USERNAME=foo MONGO_DB_PASSWORD=bar node app.js

Davon wird jedoch im Allgemeinen abgeraten, da Sie Ihren Prozess höchstwahrscheinlich über das npm-Startskript starten. Seit package.json , wo die npm start Befehl definiert ist, immer an das Repository übergeben wird, vereitelt er den ganzen Zweck, die Anmeldeinformationen zu verbergen.