Все мы знаем, что Meteor предлагает драйвер miniMongo, который без проблем позволяет клиенту получить доступ к постоянному уровню (MongoDB).
Если любой клиент может получить доступ к постоянному API, как защитить свое приложение?
Какие механизмы безопасности предоставляет Meteor и в каком контексте их следует использовать?
Ответы:
Когда вы создаете приложение с помощью команды meteor, по умолчанию оно включает следующие пакеты:
Вместе они имитируют эффект от каждого клиента, имеющего полный доступ для чтения / записи к базе данных сервера. Это полезные инструменты для создания прототипов (только для целей разработки), но обычно не подходят для производственных приложений. Когда вы будете готовы к производственному выпуску, просто удалите эти пакеты.
Чтобы добавить больше, Meteor поддерживает пакеты Facebook / Twitter / и Much More для обработки аутентификации, и самым крутым является пакет Accounts-UI.
источник
meteor remove autopublish insecure
.access denied
ошибку. Проверить это.В документах сборников говорится:
источник
Если вы говорите об ограничении клиента не использовать какой-либо из ваших неавторизованных API вставки / обновления / удаления, это возможно.
См. Их приложение todo по адресу https://github.com/meteor/meteor/tree/171816005fa2e263ba54d08d596e5b94dea47b0d/examples/todos
Кроме того, теперь они добавили встроенный модуль AUTH, который позволяет вам войти в систему и зарегистрироваться. Так что это безопасно. Что касается XSS, проверок, заголовков клиентов и т. Д.
но вы можете в любой момент преобразовать приложение Meteor в полностью работающее приложение nodejs, развернув его на node. Итак, если вы знаете, как защитить приложение nodejs, вы сможете защитить Meteor.
источник
Начиная с версии 0.6.4, в режиме разработки блоки is_client и is_server по-прежнему переходят в клиентскую систему. Я не могу сказать, будут ли они разделены при выключении режима разработки.
Однако, если это не так, хакер может получить представление о системе, просмотрев блоки кода if (Meteor.is_server). Это особенно беспокоит меня, особенно потому, что я заметил, что на данный момент я все еще не могу разделить Коллекции на отдельные файлы на клиенте и сервере.
Обновить
Дело в том, что не помещайте связанный с безопасностью код в блок is_server в каталог, не являющийся сервером (т. Е. Убедитесь, что он находится где-то в каталоге / server.
Я хотел увидеть, не сошел ли я с ума по поводу того, что не могу разделить клиентские и серверные Коллекции в клиентских и серверных каталогах. На самом деле проблем с этим нет.
Вот мой тест. Это простой пример модели публикации / подписки, которая, кажется, работает нормально. http://goo.gl/E1c56
источник