Het lijkt erop dat de mongo-sanitize
npm-module is de plek om te beginnen voor de onbewerkte escape-functionaliteit. Eerlijk gezegd klinkt dit meer geschikt voor de connect/express middleware-laag, omdat de code op de mangoest-laag door ontwerp geen verwachtingen uitoefent over de query/update-parameters in termen van of ze zijn geschreven door de applicatieontwikkelaar (in welk geval ze mogen niet worden opgeschoond, anders werken ze niet correct) of hebben gebruikersinvoer nodig (die moet worden opgeschoond). Daarom raad ik middleware-functies aan om de meest voorkomende plaatsen voor gebruikersinvoer te zuiveren:req.body
, req.query
, en req.params
. U kunt bijvoorbeeld iets doen als (schets):
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);