Перейти к содержимому
>_ITDITDПлатформа веб-безопасности
frameworks

Безопасность по фреймворкам

Руководства по безопасности для каждого фреймворка — опасные значения по умолчанию, наиболее часто эксплуатируемые слабые места и шаги харденинга — для WordPress, Laravel, Next.js, Spring и других.

Начните с общего подходаБезопасность по фреймворкам — защита, специфичная для вашего стека

Поддерживаемые фреймворки

PHP

WordPress

У WordPress крупнейшая доля, поэтому он статистически крупнейшая цель. Входы — не столько ядро, сколько уязвимости плагинов/тем, пропущенные обновления, слабые/переиспользуемые администраторы и открытые поверхности администрирования (wp-admin/xmlrpc/перечисление через REST). Защита: автоматизировать обновления ядра и плагинов, удалять неиспользуемые плагины/темы, надёжный пароль + 2FA для администраторов, ограничить доступ к админке и число попыток входа, обнаружение подмены плюс офлайн-резервные копии.

Laravel

Laravel поставляется с довольно безопасными настройками по умолчанию, но большинство инцидентов приходит из эксплуатации. Большая тройка ловушек: (1) .env или файлы секретов достижимы по URL из публичного каталога, (2) APP_DEBUG=true в проде раскрывает переменные окружения и данные подключения на странице ошибки, (3) отсутствие авторизации (вход = аутентификация, но нет авторизации по владельцу / Mass Assignment перезаписывает непреднамеренные поля). Защита: секреты вне public с правами 600, отладка выключена + кеш конфигурации в проде, авторизация через Policy/Gate, объявление $fillable.

JavaScript / Node

Next.js

Next.js поставляется с довольно безопасными значениями по умолчанию, но инциденты происходят на границе сервер/клиент. Большая тройка: (1) утечка переменных окружения (неверное использование NEXT_PUBLIC_ или передача серверных секретов клиенту), (2) отсутствие авторизации в Server Actions / Route Handlers (аутентифицирован, но нет проверки владельца) и (3) известные CVE зависимостей (включая RCE в ядре фреймворка — судите по работающей версии и быстро патчите). Защита: держите секреты на сервере, следите за границей, авторизуйте в каждом действии, машинно мониторьте CVE зависимостей.

Express

Express минималистичен — из коробки он почти не несёт функций безопасности, поэтому защиту добавляет разработчик. Главное: (1) заголовки безопасности (уровня helmet), (2) валидация и санитизация ввода, (3) авторизация по владельцу, а не только аутентификация, (4) ограничение частоты (перебор / DoS), (5) мониторинг CVE зависимостей (npm) и быстрое закрытие. Плюс защита от SSRF при исходящих запросах к URL и секреты в переменных окружения, вне кода. Свобода минимального фреймворка идёт вместе с ответственностью за защиту.

Java

Python

Ruby

.NET