sql >> Databasteknik >  >> NoSQL >> MongoDB

Korrekt dölja databasuppgifter

...Jag har min db-anslutningsfil och en annan "skyddad" fil, där mina referenser finns, och den här filen ingår i .gitignore. Jag importerar den och når data..

Det korrekta sättet att göra det är att använda miljövariabler.

Använd miljövariabler

Miljövariabler ställs in på miljön , dvs. din lokala utvecklingsmaskin eller fjärrproduktionsservern. Sedan läser du miljövariablerna i din app och använder dem på rätt sätt.

Det finns (åtminstone) ett par anledningar till att det vanligtvis görs så här:

  • Autentiseringsuppgifterna finns inte i en fil som kan läsas av någon som tittar på förvarets innehåll. Någon som klona förvaret behöver inte känna till din databasuppgifter.
  • Inloggningsuppgifterna är sannolikt olika mellan miljöer. Du använder troligen en annan databas på din lokala utvecklingsmaskin och en annan databas i din fjärrproduktionsserver.

Så här ställer du in miljövariabler (detta är för Linux, andra operativsystem kan vara annorlunda):

$ export MONGO_DB_USERNAME=foo
$ export MONGO_DB_PASSWORD=bar

och så här läser du dem i Node.js:

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

eller skicka variabler till processen vid uppstart

Alternativt kan du skicka variabler när du startar processen så här:

$ MONGO_DB_USERNAME=foo MONGO_DB_PASSWORD=bar node app.js

Men det är i allmänhet avskräckt eftersom du med största sannolikhet startar din process genom npm-startskriptet. Sedan package.json , där npm start kommandot är definierat, är alltid engagerat i förvaret, det motverkar hela syftet med att dölja referenserna.



  1. MongoDB:Hur uppdaterar man flera dokument med ett enda kommando?

  2. Vad är skillnaden mellan HSET och HMSET-metoden i redis-databasen

  3. actionkabel som prenumererar lokalt, men inte på heroku

  4. Redis fördelat inkrement med låsning