В чем причина минимонго в метеоре - PullRequest
0 голосов
/ 10 сентября 2018

Какова реальная причина и как следует использовать минимонго в метеоре? В целях безопасности клиент не должен иметь доступа к запросам. Поэтому они должны храниться только на сервере. Поэтому на клиенте ничего не должно запрашиваться.

Даже если код для запросов будет храниться на клиенте, данные на сервере не должны обновляться непосредственно клиентом, но выполненные операции должны отправляться на сервер, а сервер должен связываться с Mongo и выполнять операции. Я правильно понимаю эту часть? Это причина разрешить / запретить правила?

Но, тем не менее, метеорологи считают, что правила разрешать / запрещать недостаточно безопасны, и все равно не следует разрешать такие записи. Правильно ли я понимаю эту вторую часть?

Если так, то в чем причина использования минимонго? Это только для прототипирования? Если я хочу иметь максимальную безопасность и, следовательно, избегать использования allow / deny (запретить все), то могу ли я удалить minimongo, или он требуется и все еще используется для чего-то? Для чего?

Спасибо.

1 Ответ

0 голосов
/ 11 сентября 2018

Так как следующее слишком мало для комментария, я создам его как ответ. Я не буду утверждать, что это завершено. Надеюсь, это достаточно хорошо объясняет ситуацию.

Изначально minimongo был разработан для отражения операций с коллекциями «как если бы они появлялись на стороне сервера». Meteor автоматически синхронизирует выполненную операцию с коллекцией на стороне сервера, что экономит много времени на разработку и разработку.

Разрешить / запретить были придуманы как дополнительный уровень контроля, поэтому клиенты смогут манипулировать только данными, включающими операции, определенные в разрешении / отказе.

Однако , обнаружена критическая уязвимость безопасности , поэтому сейчас это не рекомендуется, и вместо нее следует использовать методы на стороне сервера.

Вы можете попробовать это самостоятельно , создав коллекцию и установив для allow значение true для insert, update, delete, и просто выполните некоторые из этих операций на клиенте. Отличная функция, но, к сожалению, устарел (даже не уверен, что 100% работает в новых версиях).

Но это еще не все! Тем не менее, вы можете использовать minimongo, когда дело доходит до операций запроса на клиенте с использованием курсоров . Очень мощные концепции включают cursor.observe и cursor.observeChanges . Вы также можете создавать сложные запросы, которые потребуют больших усилий при использовании традиционных итеративных подходов с массивами.

Наконец, minimogno по-прежнему является местом назначения ваших синхронизированных документов (которые подписаны клиентами и опубликованы сервером). Он представляет собой проекцию данных, которые могут быть определены до самых точных в публикации .

...