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

Pencegahan Injeksi NoSQL JavaScript di MongoDB

Jawaban Sushant salah. Anda membutuhkan untuk mengetahui injeksi NoSQL di MongoDB.

Contoh (diambil dari sini)

User.findOne({
    "name" : req.params.name, 
    "password" : req.params.password
}, callback); 

Jika req.params.password adalah { $ne: 1 } , pengguna akan diambil tanpa mengetahui kata sandinya ($ne artinya tidak sama dengan 1 ).

Pengandar MongoDB

Anda dapat menggunakan mongo-sanitize:

Ini akan menghapus semua kunci yang dimulai dengan '$' di input, sehingga Anda dapat meneruskannya ke MongoDB tanpa khawatir tentang penimpaan pengguna jahat.

var sanitize = require('mongo-sanitize');

var name = sanitize(req.params.name);
var password = sanitize(req.params.password);

User.findOne({
    "name" : name, 
    "password" : password
}, callback); 

Pengemudi Luwak

Karena mengikuti skema, jika sandi adalah bidang string, itu akan mengubah objek { $ne: 1 } untuk string dan tidak ada kerusakan akan dilakukan. Dalam hal ini, Anda tidak perlu membersihkan, ingatlah untuk mengatur skema yang tepat.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara memasukkan elemen ke daftar internal MongoDB?

  2. Penentu Format MongoDB $dateToString

  3. kecualikan bidang dalam agregasi $lookup

  4. Mengapa kumpulan instans yang menghasilkan Driver Node MongoDB menghancurkan kesalahan?

  5. Perbarui array dengan beberapa kondisi di mongodb