Узнайте, как защитить свой сервер MongoDB от атак NoSQL-инъекций, отключив функции Javascript на стороне сервера.

Все следующие операции MongoDB позволяют запускать произвольные выражения JavaScript непосредственно на сервере:

  • $ Где
  • "уменьшение карты"
  • "группа"

Эти методы могут быть действительно удобными, но они создают огромный риск безопасности для целостности вашей базы данных, если ваше приложение не очищает и не экранирует заданные пользователем значения должным образом, что подтверждается многими отчетами об атаках с использованием NoSQL-инъекций. .

Действительно, вы можете выражать большинство запросов в MongoDB без JavaScript, поэтому наиболее разумным вариантом является полное отключение серверного Javascript.

Отключение серверного Javascript в MongoDB

Откройте /etc/mongod.conf с помощью вашего любимого редактора кода и найдите раздел безопасности:

security:
    authorization: "enabled"

Если вы не можете найти mongod.conf или вместо этого он называется mongodb.conf, это означает, что вы используете действительно старую и неработающую версию MongoDB. Прочтите это руководство о том, как перейти на более новую версию.)

Обязательно добавьте следующую строку в раздел security:

    javascriptEnabled: false

Теперь сохраните файл и перезапустите mongod:

$ sudo service mongodb restart

Готово! Теперь ваше развертывание устойчиво к инъекциям NoSQL!