dmitrybascacov
@dmitrybascacov
Кодим и декодим, а иногда кино смотрим

Сколько нужно серверов и каких образом они должны общаться, чтобы создать безопасную систему?

Задача: сделать админ-панель и личный кабинет пользователя в котором будет много конфиденциальной информации по типу сканов важных документов

На данный момент, в голову пришло 2 решения в формате 2х серверов и 3х:
  • 2 сервера: админ-панель на первом и БД с API на втором
  • 3 сервера: админ-панель на первом, API на втором, БД на третьем


Со стороны кода, в голову пришли такие варианты:
  • Очень плохая идея. Делать запросы к API на стороне сервера
  • Делать API общедоступным и реализовать на нем авторизацию для получения данных


Так вот, какие есть ещё варианты и как лучше сделать?
  • Вопрос задан
  • 152 просмотра
Решения вопроса 2
@bacon
Один сервер на котором всё это и крутиться и еще один или несколько, копии первого для надежности, либо для бекапов и прочего резервирования
Ответ написан
Комментировать
vabka
@vabka
Токсичный шарпист
"быстрая и простая" - всё закинуть на один мощный сервер.
Безопасность системы от количества серверов никак не зависит.

Если вы уже посчитали, что вам нужно несколько серверов, то:
1. Доступ к ним из интернета не должен быть (вернее должен быть только к фронту и бэку)
2. Везде обязательно должны стоять не дефолтные пароли
3. Сами пароли желательно должны храниться в каком-нибудь безопасном хранилище типа HC Vault
4. Обязательно должна быть какая-то система аутентификации пользователя и какая-нибудь ролевая/правовая система, чтобы обычный пользователь ну никак не могут сделать что-то, что ему нельзя.

Из коммуникаций у тебя даже в самой большой схеме получается что-то такое:
1. Пользователь (браузер на компьютере пользователя) загружает фронтовые файлы с Сервера 1, который раздаёт статику
2. С браузера посылается запрос к API на сервере 2
3. API с сервера 2 посылает запрос к БД.
N. Всё то же самое в обратном порядке для отправки ответа, кроме Сервера 1, который раздаёт статику.

Тоесть тут вообще никаких неочевидных проблем с выбором способа коммуникации вообще быть не должно.

А для надёжность стоит хотя бы по одной копии каждого сервиса сделать.

PS: ничего плохого в делании API Закрытым и server-server коммуникации нет.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@ewgenc
Падает сервер с БД, ваши действия в дальнейшем? Резервирования мощностей нет, сервера под бекапы критически важных данных нет, репликации данных нет. Безопасное хранение пользовательских данных как будете реализовывать?
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
два сервера
увы, в одном ДЦ/стойке - иначе пинг будет мерзкий

на них настраиваешь синхронную репликацию БД, и синк файловых каталогов, односторонний
обращение к файловым делаешь как и к БД: пишешь в мастер, читаешь из слейва

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

начинаешь работу

а уже потом наворачиваешь на все это бекапы и т.п.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы