Sembra che il modulo n. mongo-sanitize npm sia il punto da cui partire per la funzionalità di escape primaria. Onestamente questo sembra più appropriato al livello middleware connect/express perché al livello di mangusta, di progettazione, il codice non esercita alcuna aspettativa sui parametri di query/aggiornamento in termini di se sono scritti dallo sviluppatore dell'applicazione (nel qual caso essi non deve essere disinfettato o non funzionerà correttamente) o coinvolgere l'input dell'utente (che deve essere disinfettato). Pertanto, consiglierei le funzioni middleware per disinfettare i luoghi più comuni in cui inserire l'input dell'utente: req.body
, req.query
e req.params
. Così, per esempio, si potrebbe fare qualcosa di simile (disegno):
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);
fonte
2015-02-25 03:30:07
@JohnnyHK ti sembra di essere un esperto qui - si può pesare? – Ben