2 уровня или 3 уровня: что безопаснее?
Я читаю об архитектуре и нашел следующее выражение:
Например, в двухуровневом приложении Windows Forms или ASP.NET компьютер, на котором выполняется код интерфейса, должен иметь учетные данные для доступа к серверу базы данных. Переключение на трехуровневую модель, в которой код доступа к данным выполняется на компьютере сервера приложений, на котором запущен код, означающий, что интерфейсу больше не нужны эти учетные данные, что делает систему потенциально более безопасной. (Рокфорд Лхотка)
Я не могу понять, почему я должен использовать 3-уровневое приложение.
1 ответ
В трехуровневом приложении средний уровень (сервер приложений) контролирует весь доступ к данным, поэтому можно задавать очень точные и конкретные правила контроля доступа (в коде), гораздо больше, чем сама база данных. Все, что хочет сделать конечный пользователь, должно пройти через ваш код (в двухуровневом приложении конечный пользователь "напрямую" обращается к базе данных).
OTOH, если вы перестанете использовать средства защиты доступа к базе данных, защита данных теперь полностью зависит от вашего приложения, а ошибки кодирования могут создать огромные дыры в безопасности.