Правильность подхода и безопасность системы

Всем привет и заранее спасибо за ваши отзывы и конструктивную критику

Наша команда разрабатывает веб-приложение. К моменту запуска это будет сайт, в дальнейшем мы планируем дополнительно выйти на десктоп и мобилки

Структура выстроена следующим образом:
Имеется 2 сервера. Один сервер отвечает за основную логику сайта (по ходу объяснений буду называть основную логику "бэком"), и на нём же находится дизайн (фронт). На втором сервере есть только аналогичный фронт

Структура бэка:
CentOS 7
Приложение ASP.NET Core (проект был выбран API)
База данный MySQL

Структура фронта:
WordPress
MySQL (отдельная от бэка база данных)

У пользователей есть доступ только до фронта. У админов, менеджеров и других работников тоже. Доступ до бэка есть только у разработчиков

Всего открыто 3 порта на сервере: 80, 443 и 1000 (пока ведется разработка ещё открыт 22 для управления сервером по SSH). На 80 стоит редирект на 443, на 443 висит фронт, на 1000 бэк. На бэке стоит фильтр на IP - принимаются запросы только от фронта на том же сервере, что и бэк, и от фронта на втором сервере (IP статичен). Плюс при каждом запросе фронт "представляется" - предоставляет логин и пароль (для каждого из фронтов они различны)

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

Та информация о пользователях, которая не является конфиденциальной (тот же адрес) хранится в БД в открытом виде. Более конфиденциальная информация (к примеру, токен доступа от eBay) хранится в зашифрованном виде. Ключ генерируется определенным алгоритмом на основе пользовательских данных (чтобы не хранить ключ в БД в открытом виде)

Собственно, сами вопросы: насколько правильно так делать - разделять бэк и фронт? Насколько безопасна такая система?


Ответы (0 шт):