MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Assainir l'entrée de l'utilisateur dans Mongoose

Il semble que le mongo-sanitize Le module npm est le point de départ pour la fonctionnalité d'échappement brut. Honnêtement, cela semble plus approprié au niveau de la couche middleware connect/express car au niveau de la couche mangouste, de par sa conception, le code n'exerce aucune attente sur les paramètres de requête/mise à jour en termes de savoir s'ils sont écrits par le développeur de l'application (auquel cas ils ne doivent pas être nettoyés ou ils ne fonctionneront pas correctement) ou impliquent une entrée de l'utilisateur (qui doit être nettoyée). Ainsi, je recommanderais des fonctions middleware pour nettoyer les endroits les plus courants pour l'entrée de l'utilisateur :req.body , req.query , et req.params . Ainsi, par exemple, vous pourriez faire quelque chose comme (esquisser) :

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);