sql >> Database teknologi >  >> NoSQL >> MongoDB

Rengør brugerinput i Mongoose

Det ser ud som om mongo-sanitize npm-modulet er stedet at starte for den rå escape-funktionalitet. Ærligt talt lyder dette mere passende på connect/express middleware-laget, fordi på mongoose-laget, designmæssigt, sætter koden ikke nogen forventninger til forespørgsels-/opdateringsparametrene med hensyn til, om de er skrevet af applikationsudvikleren (i hvilket tilfælde de må ikke desinficeres, ellers vil de ikke fungere korrekt) eller involvere brugerinput (som skal desinficeres). Derfor vil jeg anbefale middleware-funktioner til at rense de mest almindelige steder for brugerinput at indtaste:req.body , req.query , og req.params . Så du kan for eksempel gøre noget som (skitse):

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. Mongoose udfylder ikke (.populate()) på produktion (Heroku), men arbejder på Local

  2. NodeJS + Express + Mongo Session-lagring

  3. MongoDB:Fejl ved indstilling af TTL-indeks ved samling:sessioner

  4. meteor:hvordan kan jeg sikkerhedskopiere min mongo-database