Rostelecom Security Labs

SecureCode Review — H2 Console в проде

Консоль H2 включена в боевом профиле и доступна без авторизации. Это даёт прямой доступ к базе. Найди строку и предложи, как ограничить консоль.

📚 Теория: H2 Console (раскрыть)

Опасность

H2 web-консоль предоставляет SQL-доступ к базе. В проде это означает полный контроль над данными.

⚠️ Можно читать/модифицировать таблицы, проводить SSRF.

Лучшие практики

Включай консоль только в dev, ограничивай IP, используй пароль и Spring Security, либо убери вовсе.

🔐 `spring.h2.console.enabled=false` в prod профиле.

1. Запрос

GET /h2-console/ открывает форму логина.

2. Эксплуатация

Атакующий логинится с дефолтным JDBC URL и доступом без пароля.

3. Компрометация

Получает данные пользователей, токены, делает DROP TABLE.

Как надо: отключай H2 console в боевом профиле, используй отдельный dev-profile, ставь firewall и тесты, которые гарантируют, что консоль недоступна.

Контекст

Во время миграции команда включила H2 console «для дебага» и забыла убрать. Конфиг prod наследует параметры по умолчанию и оставляет консоль доступной.

Конфигурация

Загружаем конфиг…

Code Review

Проверка флага

После ревью зафиксируй флаг, чтобы дашборд засчитал лабораторию.