Безопасность Mongodb в node.js
Например, для базы данных MySQL существуют известные проблемы безопасности. Как это относится к базе данных NoSQL? например, инъекции, xss и т. д. Какие меры безопасности вы должны предпринять при использовании базы данных NoSQL? В частности, относительно MongoDB (с node-mongodb-native) и Node.js (с использованием Express)
И если да, есть ли какие-нибудь модули для Node/Express, которые помогут предотвратить это?
1 ответ
Существует специфическая проблема для NodeJS, MongoDB (и некоторых других баз данных NoSQL, которые интенсивно используют javascript): внедрение javascript на стороне сервера. Смотрите здесь и здесь (pdf) для деталей. Это больше похоже на SQL-инъекцию, чем на XSS.
Вкратце, это когда злоумышленник отправляет javascript на ваш nodejs или mongodb, когда вы ожидаете только JSON. Так что теоретически плохой парень может отключить ваш сервис (DOS), получить доступ к вашим данным и даже к файловой системе.
Чтобы предотвратить такие атаки, вы должны:
- Избегайте создания "специальных" команд JavaScript, объединяя скрипт с пользовательским вводом.
- Проверьте пользовательский ввод, используемый в командах SSJS с регулярными выражениями.
- Избегайте использования команды JavaScript eval. В частности, при разборе входных данных JSON используйте более безопасную альтернативу, такую как JSON.parse.