MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Menyembunyikan kredensial basis data dengan benar

...Saya memiliki file koneksi db saya dan file "dilindungi" lainnya, di mana kredensial saya berada, dan file ini termasuk dalam .gitignore. Saya mengimpornya dan mencapai datanya..

Cara yang benar untuk melakukannya adalah dengan menggunakan variabel lingkungan.

Gunakan variabel lingkungan

Variabel lingkungan diatur pada lingkungan , yaitu mesin pengembangan lokal Anda atau server produksi jarak jauh. Kemudian, dalam aplikasi Anda, Anda membaca variabel lingkungan dan menggunakannya dengan tepat.

Ada (setidaknya) beberapa alasan mengapa hal itu biasanya dilakukan seperti ini:

  • Kredensial tidak ada dalam file yang dapat dibaca oleh seseorang yang melihat konten repositori. Seseorang yang mengkloning repositori tidak perlu mengetahui Anda kredensial basis data.
  • Kredensial kemungkinan berbeda antar lingkungan. Anda mungkin menggunakan database yang berbeda di mesin pengembangan lokal Anda dan database yang berbeda di server produksi jarak jauh Anda.

Inilah cara Anda mengatur variabel lingkungan (ini untuk Linux, OS lain mungkin berbeda):

$ export MONGO_DB_USERNAME=foo
$ export MONGO_DB_PASSWORD=bar

dan inilah cara Anda membacanya di dalam Node.js:

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

atau meneruskan variabel ke proses saat memulai

Atau, Anda dapat meneruskan variabel saat memulai proses seperti:

$ MONGO_DB_USERNAME=foo MONGO_DB_PASSWORD=bar node app.js

Namun itu umumnya tidak disarankan karena Anda kemungkinan besar memulai proses Anda melalui skrip npm start. Sejak package.json , di mana npm start perintah didefinisikan, selalu berkomitmen ke repositori itu mengalahkan seluruh tujuan menyembunyikan kredensial.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mengejek database di node.js?

  2. Impor data csv sebagai array di mongodb menggunakan mongoimport

  3. Tidak dapat terhubung ke MongoDB melalui node.js di Docker

  4. Tidak peka huruf besar indeks unik Mongo

  5. Kemungkinan duplikat Mongo ObjectId dihasilkan dalam dua koleksi berbeda?