Sejauh injeksi menjadi masalah, seperti halnya SQL, risikonya jauh lebih rendah... meskipun secara teori dimungkinkan melalui vektor serangan yang tidak diketahui.
Struktur dan protokol data adalah biner dan berbasis API daripada memanfaatkan nilai yang lolos dalam bahasa khusus domain. Pada dasarnya, Anda tidak bisa hanya mengelabui parser untuk menambahkan ";db.dropCollection()" di akhir.
Jika hanya digunakan untuk kueri, mungkin tidak masalah... tapi saya tetap mengingatkan Anda untuk menggunakan sedikit validasi:
- Pastikan hanya karakter alfanumerik (filter atau batalkan null dan hal lain yang biasanya tidak Anda terima)
- Terapkan panjang maksimum (seperti 255 karakter) per istilah
- Terapkan panjang maksimal seluruh kueri
- Strip khusus nama parameter dimulai dengan "$", seperti "$where" &semacamnya
- Jangan izinkan array/dokumen/hash bersarang... hanya string &int
Juga, perlu diingat, kueri kosong mengembalikan semuanya. Anda mungkin menginginkan batasan pada nilai pengembalian itu. :)