Безопасность Mongodb в node.js

Например, в базе данных MySQL есть известные проблемы безопасности. Как это относится к базе данных NoSQL? например Инъекции, xss и т.д. Каковы измерения безопасности, которые вы должны предпринять при использовании базы данных NoSQL? В частности, для MongoDB (node-mongodb-native) и Node.js(с помощью Express)

И если да, существуют ли какие-либо модули для Node/Express, которые помогают предотвратить это?

Ответ 1

Существует определенная проблема для NodeJS, MongoDB (и некоторых других баз данных NoSQL, которые сильно используют javascript): serverside javascript injection. Посмотрите здесь и здесь (pdf). Это больше похоже на SQL-инъекцию, чем на XSS.

Вскоре, когда атакующий отправляет javascript на ваш nodejs или mongodb, когда вы ожидаете только JSON. Таким образом, теоретически плохой парень может снизить вашу службу (DOS), получить доступ к вашим данным и даже файловой системе.

Чтобы предотвратить такие атаки, вам необходимо:

  • Избегайте создания "ad-hoc" команд JavaScript путем объединения script с пользовательским вводом.
  • Подтвердите ввод пользователя, используемый в командах SSJS с регулярными выражениями.
  • Избегайте использования команды JavaScript eval. В частности, при анализе ввода JSON используйте более безопасную альтернативу, такую ​​как JSON.parse.