2016-10-07 2 views
0

На мой взгляд, изучая Метеор на прошлых неделях, пытаясь построить простую груду с некоторой проверкой, я наткнулся на что-то.Является ли метеорным пакетом aldeed: autoform небезопасно?

До сегодняшнего дня я пытался сохранить свою схему сборок на стороне сервера и имел некоторые трудности с проверкой валидации сервера Schemas на клиенте, поэтому я добавил aldeed: autoform.

Когда я начал играть с автоформатом, после нескольких ошибок, я был удивлен, осознав, что схема сборки должна быть определена на стороне клиента для правильной работы.

Не кажется ли это чем-то опасным? Следует ли опубликовать схему ваших Коллекций на клиенте?

Возможно, это глупый вопрос, я не уверен. Приносим извинения заранее: D

+0

Я не думаю, что так.Если вы не использовали autoform, у вас будет некоторый код, обеспечивающий проверку формы, которая сообщит хакеру, какие элементы необходимы. Я не думаю, что это означает его дыру в безопасности. – Mikkel

+0

Но этот код, обеспечивающий проверку, будет «защищен» на стороне сервера, а не на стороне клиента, подвергая потенциально конфиденциальную информацию. – Gabriel

ответ

0

Вам нужно будет определить схему, чтобы она была доступна как клиенту, так и серверному коду. Это связано с тем, что валидация формы выполняется один раз на стороне клиента (которая всегда должна рассматриваться как небезопасная, поскольку она доступна в консоли браузера, как показано ниже) и один раз на стороне сервера. Проверка на стороне сервера всегда считается безопасной. Поэтому, даже если вам удастся манипулировать формой из браузера любыми способами, если проверка не совпадает с схемой, она отфильтровывается на стороне сервера , пока схема привязана к коллекции. Я считаю, что это безопасно.

enter image description here

Meteor autoform page предлагает вам удалить отслаивающиеся и добавить разрешить/запретить правила.

Обязательно определить надлежащую безопасность вставки для ненадежного кода, если вы имеете устранил insecure пакета. Позвонить/запретить или использовать ongoworks:security.

шаги я следовать, чтобы держать вещи в безопасности (следует помнить, что может быть лучше пути, так как я тоже довольно новый метеорной вселенной)

  1. Удалить autopublish и небезопасным.
  2. Определить схему с помощью правил allow/deny.
  3. Использовать методы метеоритного сервера для вставки/обновления.
  4. Независимо от того, используете ли вы схему, прикрепленную к коллекции или схеме, только для проверки формы и не хотите, чтобы она была прикреплена к коллекции, убедитесь, что вы вызываете [check()][4] на код сервера, чтобы после отправки формы клиент заканчивает сервер, сервер далее явно проверяет, все ли данные по-прежнему соответствуют схеме, и ничто не было введено/подделано кем-то или чем-то недоверенным. Если он управляется, проверка на стороне сервера автоматически отфильтровывает дополнительные дополнения к данным, переданным ему.

Это то, что произойдет, если кто-то добавляет дополнительные данные, в которых не существует/соответствует определению схемы:

enter image description here

+0

Спасибо за длинный и подробный пост, но я все же думаю, что подвергая вашу схему клиенту, вы можете предоставить информацию, которая может быть использована. Я собираюсь написать новый вопрос, поскольку этот вводит в заблуждение. – Gabriel

Смежные вопросы