Давайте представим, 3 машины:Насколько безопасны запросы БД на стороне клиента Meteor?
- клиента сервер
- Meteor сервер
- MongoDB
Если я выполнить запрос MongoDB от клиента, он будет подключаться к Метеоре, или непосредственно с MongoDB ? Спасибо.
Давайте представим, 3 машины:Насколько безопасны запросы БД на стороне клиента Meteor?
Если я выполнить запрос MongoDB от клиента, он будет подключаться к Метеоре, или непосредственно с MongoDB ? Спасибо.
В клиенте Meteor, meteor запускает MiniMongo, реализацию js API mongoDB.
Как написано в docs
На клиенте нет прямого подключения к базе данных MongoDB, и фактически синхронное API для него не представляется возможным (и не вероятно, что вы хотите). Вместо этого на клиенте коллекция представляет собой кеш-файл на стороне клиента базы данных. Это достигается благодаря библиотеке Minimongo - в памяти, все JS, реализации API MongoDB.
Для запросов на запись - клиент сохраняет данные, которые отражаются в MiniMongo, который затем обменивается данными с сервером Meteor. На основании правил allow/deny данные могут быть записаны на сервер MongoDB или запрещены. (Предполагается, insecure
пакет удален)
Короче говоря, клиент (MiniMOngo) и Meteor Server общаются через DDP, Meteor Server и MongoDB обмениваются данными через NodeJS MongoDB Driver. Все сообщения от клиента отправляются на сервер и в соответствии с определенными правилами могут/не могут быть записаны в БД MongoDB.
Насколько безопасен запрос БД на стороне клиента Meteor?
Ответ на этот вопрос 'Зависит от'. Согласно Meteor docs, не рекомендуется полагаться на правила allow/deny для обеспечения безопасности. Он всегда предпочитал делать это с помощью методов, как описано here
Некоторые ресурсы:
Allow/Deny Rules in Meteor
Collections in Meteor
Read about MiniMongo Here