La respuesta de Sushant no es correcta. Usted necesita estar al tanto de la inyección de NoSQL en MongoDB.
Ejemplo (tomado de aquí)
User.findOne({
"name" : req.params.name,
"password" : req.params.password
}, callback);
Si req.params.password
es { $ne: 1 }
, el usuario será recuperado sin conocer la contraseña ($ne
significa distinto de 1 ).
Controlador MongoDB
Puedes usar mongo-desinfectar:
Eliminará cualquier clave que comience con '$' en la entrada, para que pueda pasarla a MongoDB sin preocuparse de que los usuarios malintencionados la sobrescriban.
var sanitize = require('mongo-sanitize');
var name = sanitize(req.params.name);
var password = sanitize(req.params.password);
User.findOne({
"name" : name,
"password" : password
}, callback);
Conductor de mangosta
Como sigue un esquema, si la contraseña es un campo de cadena, convertirá el objeto { $ne: 1 }
a la cuerda y no se hará ningún daño. En este caso, no necesita desinfectar, solo recuerde establecer un esquema adecuado.