Vypadá to jako mongo-sanitize
Modul npm je místo, kde začít s funkcí raw escapování. Upřímně to zní vhodněji na vrstvě connect/express middlewaru, protože na vrstvě mongoose kód podle návrhu nevyvíjí žádná očekávání ohledně parametrů dotazu/aktualizace, pokud jde o to, zda jsou napsány vývojářem aplikace (v takovém případě nesmí být dezinfikovány, jinak nebudou správně fungovat) nebo zahrnovat vstup uživatele (který musí být dezinfikován). Proto bych doporučil funkce middlewaru k dezinfekci nejběžnějších míst pro zadání uživatelského vstupu:req.body
, req.query
a req.params
. Takže například můžete udělat něco jako (sketch):
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);