sql >> Databasteknik >  >> NoSQL >> MongoDB

Rensa användarinmatning i Mongoose

Det verkar som om mongo-sanitize npm-modulen är platsen att börja för den råa escape-funktionen. Ärligt talat låter detta mer lämpligt i connect/express-mellanvarulagret eftersom i mongoose-lagret, designmässigt, utövar koden inte några förväntningar på fråge-/uppdateringsparametrarna när det gäller om de är skrivna av applikationsutvecklaren (i vilket fall de får inte saneras, annars kommer de inte att fungera korrekt) eller involvera användarinput (som måste saneras). Därför skulle jag rekommendera middleware-funktioner för att rensa de vanligaste ställena för användarinmatning:req.body , req.query , och req.params . Så till exempel kan du göra något som (skiss):

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


  1. Spela 2.0 FakeApplication setup med testkonfiguration

  2. Autentisera efter att ha valt databasen

  3. Mongoose-schema:'unik' respekteras inte

  4. Scheman i extern modul fungerar inte i Node.js