На текущий момент фильтрую все, что должно попадать в MongoDB с помощью
validator.jsvar value = sanitizer.sanitize('возможный xss');
db.collection.update({"_id": ObjectId(...)}, {"name": value});
Но начал задумываться, нужно ли это? Поскольку на клиенте перед выводом данных все проходит через
var HTML_CHARS = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": ''',
'/': '/',
'`': '`'
}
var escapeHTML = function (html) {
return html.replace(/[&<>"'\/`]/g, function (match) {
return HTML_CHARS[match];
});
};
var cleaned = escapeHTML("возможный xss");
Как считаете?