Parece que mongo-sanitize
El módulo npm es el punto de partida para la funcionalidad de escape sin formato. Honestamente, esto suena más apropiado en la capa de middleware connect/express porque en la capa mangosta, por diseño, el código no ejerce ninguna expectativa sobre los parámetros de consulta/actualización en términos de si están escritos por el desarrollador de la aplicación (en cuyo caso no deben desinfectarse o no funcionarán correctamente) o involucrar la entrada del usuario (que debe desinfectarse). Por lo tanto, recomendaría funciones de middleware para desinfectar los lugares más comunes para que ingrese la entrada del usuario:req.body
, req.query
y req.params
. Entonces, por ejemplo, podría hacer algo como (boceto):
var json = require("body-parser").json;
var sanitize = require("mongo-sanitize");
function cleanBody(req, res, next) {
req.body = sanitize(req.body);
next();
}
function updateUser(req, res) {
//...
// safe to build an update query involving req.body here
}
app.put("/api/users", json(), cleanBody, updateUser);