@likejavascript

Нужно ли фильтровать значения, записываемые в MongoDB?

На текущий момент фильтрую все, что должно попадать в MongoDB с помощью validator.js

var value = sanitizer.sanitize('возможный xss');
db.collection.update({"_id": ObjectId(...)}, {"name": value});


Но начал задумываться, нужно ли это? Поскольку на клиенте перед выводом данных все проходит через
var HTML_CHARS = {
   '&': '&',
   '<': '&lt;',
   '>': '&gt;',
   '"': '&quot;',
   "'": '&#x27;',
   '/': '&#x2F;',
    '`': '&#x60;'
}

var escapeHTML = function (html) {
  return html.replace(/[&<>"'\/`]/g, function (match) {
      return HTML_CHARS[match];
  });
};

var cleaned = escapeHTML("возможный xss");


Как считаете?
  • Вопрос задан
  • 2483 просмотра
Пригласить эксперта
Ответы на вопрос 2
maxaon
@maxaon
Проверка на xss должна производится при генерации html. Проверка при сохранении - лишь дополнительный плюс. И по поводу проверки на xss https://github.com/chriso/validator.js#deprecations

Для монги, как и для любой СУБД важна проверка на инъекции. Можете начать со статьи на хабре и статьи о null byte
Ответ написан
Комментировать
ghaiklor
@ghaiklor
NodeJS TechLead
Можете использовать ORM Waterline, где валидаторы уже есть.
А вообще лучше делать проверки и на клиенте и на сервере - всё верно :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект