2014-02-20 2 views
0

Рассмотрим типичный контроллер Breeze, который ограничивает результаты запроса объектами, к которым имеет доступ зарегистрированный пользователь. Когда браузер вызывает SaveChanges, проверяет ли Бриз на сервере, что сущности, зарегистрированные как измененные, из исходного набора?Выполнение ограничений запроса соблюдается во время SaveChanges - Безопасность Breeze

Иными словами, EFContextProvider (в случае Entity Framework) отслеживает объекты, которые были переданы, поэтому он может проверять вредоносные данные, переданные на SaveChanges? Или BeforeSaveEntity необходимо проверить, имеет ли пользователь доступ к измененным объектам?

+0

Связанный, более общий вопрос о защите от вредоносных клиентов: [Обеспечение безопасности бриза на сервере для предотвращения появления вредоносных обновлений для внешних ключей] (http://stackoverflow.com/q/17471823/145173) –

ответ

1

Вы необходимо защититься от вредоносных данных в ваших BeforeSaveEntity или BeforeSaveEntities методы.

Идея о том, что EFContextProvider будет следить за лицами, которые уже были розданы, вероятно, то, что мы не хотим бы сделать, потому что

  • EFContextProvider больше не являются лицами без гражданства, который был целью разработки для облегчения масштабирования.
  • Вам все равно нужно защищать от вредоносных данных для «добавленных» объектов в методах BeforeXXX.
  • Это действительно допустимый прецедент для некоторых наших пользователей, чтобы «модифицировать» объекты, не задав их сначала.
Смежные вопросы