sql >> Databáze >  >> NoSQL >> MongoDB

Dezinfikujte uživatelský vstup v Mongoose

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


  1. Jak Mocha ví, který soubor v testovací sadě načíst jako první

  2. Jak získat tento výsledek s agregací v mongoDB

  3. Jak nastavit objem dat docker mongo

  4. 5 způsobů, jak vložit dokumenty do MongoDB