Является ли разделение зависимостей для другого сервера хорошей практикой в ​​.NET Core? - PullRequest
0 голосов
/ 16 октября 2018

В настоящее время у меня есть два проекта ASP.NET Core, которые совместно используют некоторые классы бизнес-логики, а также DbContext.Они вводятся в виде зависимостей в ConfigureServices, как это обычно показывают нам документы Microsoft.

Однако, когда дело доходит до развертывания, мой клиент предлагает разделить доступ к базе данных (т. Е. Любую бизнес-логику, требующую подключения к базе данных), чтобыдругой сервер и служит веб-интерфейсом.

Я обнаружил, что эта идея редко упоминается в Интернете, но почему-то имеет для меня такой смысл - это гарантирует, что даже если кто-то взломает веб-сервер, у него нетпрямой доступ к базе данных и может привести к повреждению или утечке данных.

Может кто-нибудь сказать мне, если это хорошая практика или она на самом деле не нужна?

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Ваш экземпляр базы данных должен определенно находиться на отдельном сервере от ваших веб-приложений по соображениям производительности и безопасности.Однако перемещение самого кода доступа к базе данных на отдельный сервер ничего не дает в плане безопасности.Я предполагаю, что это может усложнить выполнение SQL-инъекций, если есть API, выступающий в качестве посредника, но это не гарантия.Плохой код - это плохой код, и если вы, в первую очередь, не обладаете достаточной компетентностью для предотвращения внедрения SQL-кода, вы, вероятно, внесете в API некоторый недостаток, который все еще может это позволить.

Длинный и короткий, естьЗаслуга для добавления уровня API, но безопасность не является частью этого.API фактически представляют свои собственные проблемы безопасности, которые вам необходимо учитывать.Другими словами, вы можете обезопасить монолитное приложение, которое напрямую обращается к БД, и вы можете защитить одно, которое обращается к API, но простое добавление API не обеспечивает защиту для вас.

0 голосов
/ 16 октября 2018

Возможно, имеет смысл добавить службу веб-API, к которой два клиентских приложения отправляют запросы http.Что-то вроде микросервиса.Но запросы веб-сервисов, которые должны быть аутентифицированы, требуют настройки.Что приводит к тому, что ваша аутентификация в настоящее время настроена.Если он размещен в облаке, вы можете использовать API-шлюзы и комбинировать oauth.Каждый провайдер общедоступного облака предлагает свой собственный стиль шлюза.Ex.Azure предлагает сервис управления API.

...