Bustlers / Инсайты / Архитектура решета: как вы платите за бесконечный «налог на страх»
16.04.2026 Bustlers Team

Архитектура решета, или бесконечный «налог на страх»

5 сек.
Простой из-за спящего скрипта
0
Продуктовых обновлений за 5 лет
от 3600 ₽
Налог на страх

Давайте поговорим про слона в комнате. Про безопасность, ваши нервы и иллюзию контроля. Сколько раз за последние пару лет ваш техдир или админ бледнел, читая про очередную критическую уязвимость в ядре монолитной CMS? Вы послушно оплачиваете ежегодное продление лицензии, думая, что покупаете безопасность. На самом деле вы платите «налог на страх» — дань за архитектурную уязвимость, заложенную два десятилетия назад.

Это не абстрактная теория. Это ежедневная реальность сотен бизнесов, чья цифровая инфраструктура построена на принципе «монолитного комбайна». Чтобы не быть голословным — вот вам фактура прямо из сегодняшнего отчета по инциденту на одном из клиентских проектов.

Сайт клиента резко начал тормозить. Железо в норме, трафик обычный. Экстренный аудит показал прекрасную в своей простоте картину: в системном файле лежал замаскированный чужой скрипт. При каждой загрузке страницы он делал скрытый запрос на управляющий домен. Скрипт жил там давно в абсолютно «спящем» режиме. Проблема вскрылась только тогда, когда управляющий сервер хакеров ушел в даун. Скрипт перестал получать ответ, начал отваливаться по жесткому внутреннему таймауту в 5 секунд — и потащил за собой время генерации каждой страницы всего сайта.

/!\\ Warning

Ботнеты редко бьют прямо в ядро. Они эксплуатируют уязвимости нулевого дня в копеечных модулях из Маркетплейса. Пролезнув через микро-щель, хакер получает доступ ко всему серверу.

Как этот код вообще попадает на боевой сервер, если система обновляется? В этом и заключается фундаментальная проблема классических монолитов. Это огромные комбайны из миллионов строк легаси-кода, где фронтенд, бэкенд, база данных и сторонние плагины варятся в одном общем котле.

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

Но есть и еще один уровень этого мазохизма — финансовый. У нас на поддержке есть пул проектов, где фронтенд не менялся годами. Заказчика всё устраивает, конверсия идет, новый функционал объективно не нужен. По логике, такой сайт должен просто работать и приносить деньги, не требуя инвестиций.

Вы платите не за развитие своего продукта, вы платите за то, чтобы вам не сломали ноги.
Владислав Бараненков

Но вместо этого бизнес вынужден каждый год исправно заносить деньги за продление лицензии вендору. Зачем? Исключительно ради патчей безопасности. Чтобы этот цирк просто продолжал как-то работать, и его не стерли в решето новые угрозы. Это классический цифровой рэкет.

Видите список новых полезных фич? Правильно, их там нет, только латание старых дыр.

Видите список новых полезных фич? Правильно, их там нет, только латание старых дыр.

При этом многие монолитные CMS уже лет 5-10 не выпускают реальных продуктовых обновлений. Ноль новых фич для вашего бизнеса. Весь их чейнджлог — это бесконечное латание старых дыр в архитектуре, придуманной в начале нулевых. Вы содержите штат разработчиков и платите вендору не за то, чтобы они делали ваш сайт быстрее или удобнее для клиентов. Вы платите им за то, чтобы они бесконечно вычерпывали воду из тонущей лодки.

Выход есть. Он лежит не в плоскости выбора «более безопасного» монолита, а в смене самой парадигмы. Современный стек, такой как Astro + PayloadCMS, решает проблему фундаментально. Мы не вешаем новые замки на гнилую дверь, мы убираем саму дверь.

Критерий Классический монолит (Битрикс/WordPress) Headless-стек (Astro + PayloadCMS)
Архитектура Связанный монолит. Фронтенд, бэкенд, БД — единое целое. Разделенный стек. Фронтенд статичен, бэкенд изолирован.
Вектор атаки Огромный. Любой плагин или тема — потенциальная дыра. Минимальный. Нет исполняемого кода на фронтенд-сервере.
Обновления Обязательны и часты (патчи безопасности). Риск поломки функционала. Фронтенд не требует обновлений «ядра». Бэкенд обновляется независимо и реже.
Годовая стоимость владения Высокая (лицензии, поддержка, доработки после обновлений). Низкая после первоначальной разработки. Нет «налога на страх».

В Headless-архитектуре фронтенд и бэкенд физически и логически разорваны, что кардинально меняет модель безопасности и стоимости владения.

Фронтенд, собранный Astro, отдает пользователю статический HTML, CSS и JavaScript. Взломать статический HTML — это как попытаться хакнуть распечатанный на принтере лист бумаги. На сервере, который отдает сайт, просто нет исполняемого PHP, Node.js или другого серверного кода. Там некуда вставлять скрытые curl-запросы, SQL-инъекции или вредоносные скрипты.

Ваша база данных и админка PayloadCMS не «светят» голым задом в интернет по стандартным уязвимым путям вроде `/admin` или `/wp-login.php`, куда ежедневно стучатся тысячи брутфорс-ботов. Бэкенд спрятан в изолированном контуре (private network, VPC) и общается с миром только по строго защищенному API, отдавая и принимая сухой JSON. Поверхность для атаки сокращается на порядки.

Highlight

Переход на современный стек — это возможность навсегда выйти из унизительной карусели «обновился — сломалось — исправляем». Сделали сайт, выгрузили статику — всё.

Roadmap выхода из архитектуры решета

01

Аудит и декомпозиция

Проведите полный аудит текущего монолита.
Выделите чистый фронтенд (шаблоны, стили, клиентский JS) и данные (структуру контента, товаров, пользователей).
Определите, какие динамические функции действительно необходимы (корзина, личный кабинет, поиск), а какие можно статицизировать.
02

Проектирование Headless-архитектуры

Спроектируйте схему разделения.
Для фронтенда выберите статический генератор (Astro, Next.js в static export mode).
Для бэкенда выберите CMS с GraphQL/REST API (PayloadCMS, Strapi, Directus).
Продумайте модель данных в бэкенде и endpoints API для динамических функций.
03

Миграция данных и разработка

Настройте бэкенд, перенесите данные.
Разработайте новый фронтенд, который будет запрашивать данные через API на этапе сборки (для статического контента) и на клиенте (для динамики).
Настройте CI/CD пайплайн для автоматической пересборки фронтенда при обновлении контента.
04

Запуск и вывод из эксплуатации

Запустите новый Headless-сайт на параллельном домене или IP.
Протестируйте производительность и функциональность.
После успешного тестирования переключите DNS на новую инфраструктуру.
Отключите старый монолитный сервер.
Откажитесь от ежегодных лицензий.

Итоговая архитектура может лежать на сервере годами, не требуя ни копейки на обновления «ядра», потому что там нечего обновлять в контексте безопасности фронтенда. Вы платите за архитектуру один раз, получаете пуленепробиваемую систему и перенаправляете освободившийся бюджет на маркетинг или развитие продукта, пока ваши конкуренты восстанавливают бэкапы после очередного взлома.

Вопрос не в том, «а не взломают ли и Headless». Вопрос в соотношении усилий злоумышленника и потенциальной выгоды. Взлом изолированного API, защищенного современными практиками, и последующая эксплуатация через статический фронтенд — это задача на порядки сложнее, чем найти уязвимость в публичном плагине для WordPress. Вы делаете атаку на свой бизнес экономически нецелесообразной.

Пора перестать финансировать устаревшую парадигму. Пора перестать платить «налог на страх». Инвестируйте в архитектуру, которая работает на вас, а не против вас.

Вопросы и ответы

А как же динамический функционал, например, корзина или поиск по товарам? Статика же не умеет такое.

Современные статические генераторы, такие как Astro или Next.js, поддерживают гибридный рендеринг. Основной контент (каталог, статьи, страницы) рендерится статически на этапе сборки. Динамические части (корзина, поиск, фильтры) реализуются как островки интерактивности (Astro Islands) или отдельные клиентские приложения, которые запрашивают данные у защищенного бэкенд-API. Это дает и скорость статики, и гибкость динамики.
Миграция с монолита звучит дорого и рискованно. Есть ли поэтапный путь?

Стратегия Strangler Fig («душитель»). Можно начать с выноса самого проблемного или статичного раздела (например, блога или лендингов) на Headless-стек, оставив сложную динамику (личный кабинет) пока в монолите. Постепенно наращивая новую архитектуру и перенося функциональность, вы снижаете риски и распределяете бюджет. Через год-два монолит будет «задушен» новой системой без единого Big Bang релиза.
Не приведет ли разделение стека к усложнению workflow для контент-менеджеров?

Напротив, качественные Headless CMS, такие как PayloadCMS, предлагают более чистый, сфокусированный и удобный интерфейс для редакторов, чем перегруженные админки монолитов. Редактор работает только с контентом. После его сохранения запускается автоматическая пересборка фронтенда. Для команды это выглядит как работа в привычной CMS с небольшой задержкой (1-2 мин) перед публикацией. Зато исчезают риски «сломать сайт», нажав не ту кнопку в админке.
Владислав Бараненков

Владислав Бараненков

CEO BUSTLERS

Инженерный маркетолог, заменяю рутину на алгоритмы

/ Проект
[ ЗАЯВКА ПРИНЯТА ]

Отличный старт

Мы получили вашу информацию. Внимательно всё изучим и вернемся с первыми мыслями в течение дня.