sql >> Databáze >  >> NoSQL >> MongoDB

Správné skrytí přihlašovacích údajů k databázi

...mám svůj soubor připojení db a další "chráněný" soubor, kde jsou moje přihlašovací údaje, a tento soubor je součástí .gitignore. Naimportuji to a dostanu se k datům..

Správný způsob, jak to udělat, je použít proměnné prostředí.

Používejte proměnné prostředí

Proměnné prostředí se nastavují na prostředí , tj. váš místní vývojový stroj nebo vzdálený produkční server. Poté si ve své aplikaci přečtete proměnné prostředí a vhodně je použijete.

Existuje (alespoň) několik důvodů, proč se to obvykle dělá takto:

  • Přihlašovací údaje neexistují v souboru, který by mohl číst někdo, kdo si prohlíží obsah úložiště. Někdo, kdo klonuje úložiště, nemusí znát vaše přihlašovací údaje k databázi.
  • Pověřovací údaje se pravděpodobně v různých prostředích liší. Pravděpodobně používáte jinou databázi na svém místním vývojovém počítači a jinou databázi na vzdáleném produkčním serveru.

Zde je návod, jak nastavit proměnné prostředí (toto platí pro Linux, jiné OS se mohou lišit):

$ export MONGO_DB_USERNAME=foo
$ export MONGO_DB_PASSWORD=bar

a takto je čtete v Node.js:

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

nebo předejte proměnné procesu při spouštění

Případně můžete předat proměnné při spouštění procesu takto:

$ MONGO_DB_USERNAME=foo MONGO_DB_PASSWORD=bar node app.js

To se však obecně nedoporučuje, protože proces s největší pravděpodobností začínáte pomocí spouštěcího skriptu npm. Od package.json , kde je npm start příkaz je definován, je vždy odevzdán úložišti a maří celý účel skrytí přihlašovacích údajů.



  1. Proč můj skript Redis Lua nemůže atomicky aktualizovat klíče na různých uzlech Redis Cluster?

  2. Robustní serializace zpráv v Apache Kafka pomocí Apache Avro, část 1

  3. 5 způsobů, jak získat milisekundy z data v MongoDB

  4. Získejte konkrétní prvek z pole mongoDB