MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Дезинфекцирайте въведеното от потребителя в Mongoose

Изглежда като mongo-sanitize Модулът npm е мястото, от което да започнете за необработената функционалност за екраниране. Честно казано, това звучи по-подходящо в слоя за свързване/изразяване на мидълуера, тъй като в слоя mongoose, по дизайн, кодът не упражнява никакви очаквания върху параметрите за заявка/актуализация по отношение на това дали са написани от разработчика на приложението (в който случай те не трябва да се дезинфекцират или няма да функционират правилно) или да включват потребителски вход (което трябва да се дезинфекцира). Затова бих препоръчал мидълуерни функции за дезинфекция на най-често срещаните места за въвеждане от потребителя:req.body , req.query и req.params . Така например можете да направите нещо като (скица):

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. 9 функции на ClusterControl, които няма да намерите в други инструменти за управление на бази данни

  2. Проектно поле във вграден документ в рамките на вграден масив

  3. MongoDB пълнотекстово търсене + заобиколно решение за частично съвпадение на думи

  4. Как да коригирам този проблем с картографирането на Morphia??? ---> ПРЕДУПРЕЖДЕНИЕ [org.mongodb.morphia.mapping.DefaultCreator] - Класът не е намерен, дефиниран в dbObj:

  5. Как да актуализирате множество полета на обект от масив с една заявка?