Живым или с пруфами. Дело № 001: гексагон от хакеров

В нашем городе появился гексагон, который защищает от хакеров. Правда, поддерживать его почти невозможно. Так объясняют архитектуру в ролике канала @drdev.

Открываю «Живым или с пруфами». Здесь буду разбирать технические советы, после которых хочется положить перед автором первоисточник: «Читай, ковбой. Мы прикроем».

Улика первая. Гексагон записали в микросервисы. На 12:30–12:51 автор представляет гексагональную архитектуру как разновидность микросервисной. Формулировка ближе к концу фрагмента: «сильно навороченная микросервисная архитектура».

Гексагональную архитектуру можно применить внутри одного монолитного приложения. Её задача - отделить прикладную логику от способов ввода и вывода. Порт задаёт контракт взаимодействия, адаптер связывает его с конкретной технологией. Разносить эти части по отдельным сервисам необязательно.

В статье Алистера Кокберна пример вообще построен на небольшом приложении для расчёта скидки. Микросервисную империю для этого никто не разворачивает.

Улика вторая. Адаптер назначили охранником. На 19:34–19:56 автор объясняет: при хакерской атаке отключаем адаптер, всё продолжает работать и «никаких сливов информации» не происходит.

Отключение интеграции может быть частью реакции на инцидент. Но граница между классами сама по себе не останавливает злоумышленника и не возвращает уже утёкшие данные.

Вот мысленный пример: обработчик позволяет запросить чужой заказ по его номеру, потому что проверку прав забыли. Запрос прекрасно пройдёт через порт и адаптер. Все слои на месте, чужой заказ уехал клиенту. OWASP рекомендует проверять права на каждом запросе.

Улика третья. Архитектуру отправили на вечный покой. На 21:12–21:45 звучит «поддерживать это почти невозможно». Дальше подход связывают с приложениями, которые доделали и оставили в покое.

У подхода есть цена: дополнительные интерфейсы, переходы между частями кода, необходимость следить за границами. Для маленькой задачи это может быть лишним. Но возможность тестировать логику отдельно и заменять внешние компоненты как раз помогает при изменениях. У Кокберна есть пример расширения существующей системы новыми адаптерами.

При этом на 17:41–17:50 автор верно говорит о независимости ядра от базы данных. Эта мысль вполне годится. Последующие обещания безопасности из неё уже не следуют.

Представляю хакера: базу уже скачал, а тут ему адаптер отключили. Пришлось всё удалить - против гексагона не попрёшь.

#ЖивымИлиСПруфами #архитектура

Живым или с пруфами.
Дело № 001: гексагон от хакеров | Сетка — социальная сеть от hh.ru Живым или с пруфами.
Дело № 001: гексагон от хакеров | Сетка — социальная сеть от hh.ru