MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Prawidłowe ukrywanie danych logowania do bazy danych

... Mam plik połączenia db i inny "chroniony" plik, w którym znajdują się moje poświadczenia, a ten plik jest zawarty w .gitignore. Importuję go i docieram do danych..

Prawidłowym sposobem na to jest użycie zmiennych środowiskowych.

Użyj zmiennych środowiskowych

Zmienne środowiskowe są ustawione w środowisku , tj. lokalna maszyna programistyczna lub zdalny serwer produkcyjny. Następnie w aplikacji odczytujesz zmienne środowiskowe i używasz ich odpowiednio.

Jest (przynajmniej) kilka powodów, dla których zwykle robi się to w ten sposób:

  • Poświadczenia nie istnieją w pliku, który może odczytać ktoś przeglądający zawartość repozytorium. Ktoś klonujący repozytorium nie musi znać Twojego poświadczenia bazy danych.
  • Poświadczenia są prawdopodobnie różne w różnych środowiskach. Prawdopodobnie używasz innej bazy danych na lokalnym komputerze deweloperskim i innej bazy danych na zdalnym serwerze produkcyjnym.

Oto jak ustawiasz zmienne środowiskowe (dotyczy Linuksa, inne systemy operacyjne mogą być inne):

$ export MONGO_DB_USERNAME=foo
$ export MONGO_DB_PASSWORD=bar

a oto jak je czytać w Node.js:

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

lub przekaż zmienne do procesu podczas uruchamiania

Alternatywnie możesz przekazać zmienne podczas uruchamiania procesu w następujący sposób:

$ MONGO_DB_USERNAME=foo MONGO_DB_PASSWORD=bar node app.js

Jednak generalnie jest to odradzane, ponieważ najprawdopodobniej rozpoczynasz swój proces za pomocą skryptu startowego npm. Od package.json , gdzie npm start komenda jest zdefiniowana, jest zawsze przekazywana do repozytorium, co uniemożliwia ukrycie danych uwierzytelniających.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak mogę połączyć się z MongoDB Atlas za pomocą Robomongo?

  2. MongoDB.Driver.Builders jak grupować i uzyskiwać średnią

  3. 3 proste kroki do tworzenia klastrów dzielonych MongoDB

  4. Czy można wielokrotnie wysyłać zapytania do bazy danych MongoDB na żądanie?

  5. Jak zmienić nazwy pól podczas wyszukiwania/rzutowania w MongoDB?