Безопасность прямого доступа к таблицам с Entity Framework - PullRequest
0 голосов
/ 11 марта 2011

Приветствую!

Я недавно создал шаблон для одного из моих клиентов, который включает в себя множество новых функций, не последним из которых является EF / WCF RIA.

Время развертывания значительно сокращается, когда я могу подключиться через EF напрямую к столу.Нет больше CRUD SPROCs для всех 50 столов.Я читал, что EF по умолчанию не допускает стандартных SQL-инъекций, но мне интересно, может ли кто-нибудь предоставить мне исчерпывающий обзор безопасности или, по крайней мере, достаточно данных, где я мог бы сидеть со старшим администратором баз данныхпарень здесь, и убедите его, что писать все CRUD SPROC не нужно.

Я прочитал Вопросы безопасности MSDN (Entity Framework) , Безопасность для служб RIA WCF и множество других статей, но я решил датьТак что попробуйте и попросите некоторые реальные реализации и убедительные доказательства с точки зрения безопасности и EF.

Ваши мысли очень ценятся

У старшего сотрудника DBA / Security здесь было много вопросов окак

Ответы [ 2 ]

2 голосов
/ 11 марта 2011
  1. Ваша клиентская программа никогда не обращается к SQL напрямую, вместо этого они вызывают службу RIA, а служба RIA находится внутри вашего ASP.NET, который полностью находится под вашим контролем.
  2. Вы можете перехватить ваш ObjectContext, переопределив такие методы, как SaveChanges, и вы можете ограничить свой IQueryable в ваших классах шаблонов служб RIA.
  3. C # или VB.NET код очень легко читать и понимать вместо хранимых процедур.
  4. Поддержание хранимой процедуры - это точно боль.
  5. Служба RIA предоставляет вам шаблоны методов, в которых вы можете перехватывать логику, манипулировать и отслеживать действия, выполняемые с базой данных.
  6. Единственное отличие состоит в том, что ваша логика мониторинга и манипулирования для CRUD выполняется внутри пула приложений ASP.NET в случае служб RIA WCF, а в случае хранимой процедуры - на сервере базы данных.
  7. В обоих случаях ваш клиент не имеет прямого доступа.
  8. EF уже проверяет ваши данные перед сохранением в БД по созданной вами модели.
  9. Будущая версия SQL Server будет поставляться со встроенными инструментами моделирования, которые в любом случае откажутся от хранимых процедур для CRUD.
0 голосов
/ 11 марта 2011

Мне тоже пришлось с этим справиться. Я не уверен, что ваша ситуация такая же, в том смысле, что вы все еще можете использовать EF с экспортом функции proc. Не могу сказать, что справился лучше, но обучил сотрудника DBA границам безопасности WCF RIA. Это означает, что если кто-то может пройти проверку подлинности, он все равно сможет вызывать сервисные методы, вызывающие процессы. Поэтому я думаю, что, по моему мнению, нет большой разницы в том, чтобы показывать сущности, которые вам нужны, по сравнению с показом сервисных методов, вызывающих процессы. Я смог заставить человека ослабить свои ограничения, когда я показал им, как легко выполнять CRUD-операции с Linq для сущностей, что означает для них меньше работы.

...