La risposta di Sushant non è corretta. Hai bisogno essere a conoscenza dell'iniezione di NoSQL in MongoDB.
Esempio (tratto da qui)
User.findOne({
"name" : req.params.name,
"password" : req.params.password
}, callback);
Se req.params.password
è { $ne: 1 }
, l'utente verrà recuperato senza conoscere la password ($ne
significa non è uguale a 1 ).
Driver MongoDB
Puoi usare mongo-sanitize:
Eliminerà tutte le chiavi che iniziano con "$" nell'input, quindi puoi passarlo a MongoDB senza preoccuparti della sovrascrittura di utenti dannosi.
var sanitize = require('mongo-sanitize');
var name = sanitize(req.params.name);
var password = sanitize(req.params.password);
User.findOne({
"name" : name,
"password" : password
}, callback);
Driver della mangusta
Come segue uno schema, se la password è un campo stringa, convertirà l'oggetto { $ne: 1 }
alla corda e nessun danno sarà fatto. In questo caso non è necessario sanificare, ricordati solo di impostare uno schema adeguato.