Ответ 1
Кажется, что 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);