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