sql >> Database teknologi >  >> NoSQL >> MongoDB

Korrekt skjul databaselegitimationsoplysninger

...Jeg har min db-forbindelsesfil og en anden "beskyttet" fil, hvor mine legitimationsoplysninger er, og denne fil er inkluderet i .gitignore. Jeg importerer det og når dataene..

Den korrekte måde at gøre det på er at bruge miljøvariabler.

Brug miljøvariabler

Miljøvariabler indstilles på miljøet , dvs. din lokale udviklingsmaskine eller fjernproduktionsserveren. Derefter læser du miljøvariablerne i din app og bruger dem korrekt.

Der er (mindst) et par grunde til, at det normalt gøres sådan her:

  • Legitimationsoplysningerne findes ikke i en fil, der kan læses af en person, der ser lagerindholdet. En person, der kloner depotet, behøver ikke at kende din databaselegitimationsoplysninger.
  • Logioplysningerne er sandsynligvis forskellige mellem miljøer. Du bruger sandsynligvis en anden database på din lokale udviklingsmaskine og en anden database på din fjernproduktionsserver.

Sådan indstiller du miljøvariabler (dette er til Linux, andre OS'er kan være anderledes):

$ export MONGO_DB_USERNAME=foo
$ export MONGO_DB_PASSWORD=bar

og her er, hvordan du læser dem i Node.js:

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

eller videregive variabler til processen ved opstart

Alternativt kan du videregive variabler, når du starter processen som sådan:

$ MONGO_DB_USERNAME=foo MONGO_DB_PASSWORD=bar node app.js

Det frarådes dog generelt, da du højst sandsynligt starter din proces gennem npm start-scriptet. Siden package.json , hvor npm start kommandoen er defineret, er altid forpligtet til depotet, det besejrer hele formålet med at skjule legitimationsoplysningerne.



  1. redis hukommelse og cpu spikes

  2. Hvordan finder man ubrugte indekser i MongoDB?

  3. Django Selleri få opgavetælling

  4. Find værdier, der ikke indeholder tal i SQL