Когда я пишу метеоритные методы для коллекций, я обычно помещаю их в общий каталог, чтобы их можно было имитировать на клиенте для быстрой скорости. Однако это безопасно? Должен ли я помещать методы в каталог сервера, и если да, то какие методы?Методы метеоров на сервере
ответ
Это не способ, которым метеор должен работать в общем случае. Вы должны реализовать большинство своих методов сбора (обновление, вставка, удаление) только на стороне клиента и проверить сервер прав на обновления.
Если у вас есть коллекция с некоторыми сообщениями, не делайте Meteor.call('addNewPost', newPost)
. И a Posts.insert(...)
на стороне сервера метеорного метода addNewPost
. Это было бы классическим способом с REST API; но это метеор :)
Вы направляетесь на сторону клиента непосредственно для Posts.insert(...)
. Это будет отображаться на стороне клиента сразу и будет пытаться обновить базовую серверную сторону.
Затем на стороне сервера, вы должны установить обширные разрешения:
Posts.allow({
'insert': function(userId, doc) {
// Check if the user exists
// if he has the right to insert
// if what he tries to insert is ok for you
// ...
},
'update': function(userId, docs, fields, modifier) {
// same, width the fields, the doc, the user...
},
'remove': function(userId, docs) {
// same again
}
});
Вы можете allow()
или deny()
на все, что вы можете сделать на коллекции. Это может показаться странным, но это реальная основа хорошей компенсации за задержку. Это может быть нарушение безопасности HUDGE, если вы не знаете, как настроить свое разрешение так, как должно быть. Но если вы знаете, как это сделать, проблема с безопасностью абсолютно отсутствует.
(мой совет все отрицать, но конкретные элементы, которые вы хотите разрешить)
Итак:
- пользователь обновляет свою базу данных на стороне клиента с помощью метода на стороне клиента: myCollection.update()
- он видит результаты
- метеора делает его магию, чтобы отправить его на сервер
- проверка сервера, если это разрешено
- если да, то пишите в базу и отправить другим абонентам
- если нет, то отправьте запрос на вновь обратиться в сторону изменения клиентский
Да. вы можете сделать его безопасным и иметь общий каталог для коллекций. Функция компенсации задержки метеоритов работает только в том случае, если у вас есть коллекции как на сервере, так и на клиенте. Если вы используете общий код для коллекций, вы должны это сделать.
- удалить отслаивающиеся, autopublish пакеты
- использование publish/subscribe
- настроить allow/deny правила для каждой коллекции
более по безопасности метеора. http://security-resources.meteor.com/
Спасибо, так что я могу есть общие методы, и они все еще будут в безопасности, как сервер только методы? – theo3335796
Имейте в виду, что общий код отправляется клиенту, чтобы каждый мог его просмотреть. Это зависит от того, что вы хотите архивировать. Если вы спрашиваете о том, как Meteor.methods ограничивают его только сервером. – pahan
Я говорю о Метеор.методы, но я думал, что это быстрее, если общий, поскольку метеорит может имитировать метод – theo3335796
- 1. Методы и характеристики метеоров
- 2. Развертывание приложения метеоров на веб-сервере
- 3. Как я могу проверить мои методы метеоров?
- 4. Сбор метеоров обновлен на сервере, не отражается на клиенте
- 5. Данные для чтения метеоров из файла, хранящегося на сервере
- 6. Влияние «oplog» на применение метеоров
- 7. методы запроса на HTTPS-сервере
- 8. Сбор и безопасность метеоров
- 9. Вспомогательные методы на сервере Zuul Весеннее облако
- 10. Как вызвать методы на внешнем сервере/webservice?
- 11. Методы Meteor не работают на сервере Modulus
- 12. Развертывание метеоров
- 13. Ускорение распространения метеоров
- 14. Обновление метеоров без пользователя
- 15. Загрузка развернутого проекта метеоров
- 16. Ограничение сбора метеоров
- 17. Лучшая практика структуры метеоров
- 18. Список динамических категорий метеоров
- 19. Как мне понизить установку метеоров на окнах?
- 20. Поиск коллекции метеоров на уровне маршрутизатора
- 21. Шимпанк на траверсе для тестирования метеоров
- 22. Коллекция метеоров не отображается
- 23. Обновление коллекции метеоров Async?
- 24. , используя контракты, развернутые при запуске на стороне сервера приложения метеоров?
- 25. Осветление порядка загрузки метеоров
- 26. PM2 + Настройка окружения метеоров
- 27. Отключить регистрацию метеоров
- 28. Понимание учебника метеоров
- 29. Крюк в сброс метеоров
- 30. Публикация метеоров с расчетами
Спасибо, теперь у меня есть разрешения для всех моих коллекций для обеспечения безопасности, поэтому не имеет значения, являются ли мои методы клиентами, и я разрешаю/запрещаю? Или они должны быть перемещены в каталог сервера для максимальной безопасности. – theo3335796
Не знаю, будет ли запущена клиентская система allow/deny. Мое первое предположение - нет. Я бы сказал, что это чистая серверная часть. Я думаю, что добавление этих элементов в ваш клиентский код только добавит жир вашему конечному клиенту js. – fabien
Я поместил код allow/deny в папку моих коллекций, поэтому делится как на клиенте, так и на сервере, поэтому, надеюсь, он должен работать как в – theo3335796