2 уровня или 3 уровня: что безопаснее?

Я читаю об архитектуре и нашел следующее выражение:

Например, в двухуровневом приложении Windows Forms или ASP.NET компьютер, на котором выполняется код интерфейса, должен иметь учетные данные для доступа к серверу базы данных. Переключение на трехуровневую модель, в которой код доступа к данным выполняется на компьютере сервера приложений, на котором запущен код, означающий, что интерфейсу больше не нужны эти учетные данные, что делает систему потенциально более безопасной. (Рокфорд Лхотка)

Я не могу понять, почему я должен использовать 3-уровневое приложение.

1 ответ

Решение

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

OTOH, если вы перестанете использовать средства защиты доступа к базе данных, защита данных теперь полностью зависит от вашего приложения, а ошибки кодирования могут создать огромные дыры в безопасности.

Другие вопросы по тегам