2012-06-10 7 views
10

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

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

+0

Я считаю, что принцип «не доверяй никому и особенно принципу ввода пользователя» по-прежнему применяется к базам данных noSql. Но это хороший и актуальный вопрос, хотелось бы увидеть некоторые ответы на него. Спасибо @Jojje –

ответ

11

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

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

Для предотвращения подобных атак вы должны:

  1. Избегайте создание «специальным» JavaScript командует путем конкатенации сценария с пользовательским вводом.
  2. Подтвердите ввод пользователя, используемый в командах SSJS с регулярными выражениями.
  3. Избегайте использования команды JavaScript eval. В частности, при анализе ввода JSON используйте более безопасную альтернативу, такую ​​как JSON.parse.
Смежные вопросы