Sushantova odpověď není správná. potřebujete abyste si byli vědomi injekce NoSQL v MongoDB.
Příklad (převzato odtud)
User.findOne({
"name" : req.params.name,
"password" : req.params.password
}, callback);
Pokud req.params.password
je { $ne: 1 }
, uživatel bude načten bez znalosti hesla ($ne
znamená nerovná se 1 ).
Ovladač MongoDB
Můžete použít mongo-sanitize:
Odstraní všechny klíče, které začínají na '$' ve vstupu, takže je můžete předat MongoDB, aniž byste se museli starat o přepsání škodlivých uživatelů.
var sanitize = require('mongo-sanitize');
var name = sanitize(req.params.name);
var password = sanitize(req.params.password);
User.findOne({
"name" : name,
"password" : password
}, callback);
Ovladač Mongoose
Jak vyplývá ze schématu, pokud heslo je pole řetězce, převede objekt { $ne: 1 }
navléknout a nedojde k žádnému poškození. V tomto případě nemusíte dezinfikovat, jen nezapomeňte nastavit správné schéma.