Секреты и безопасные заголовки
секреты должны быть вне кода, а HTTP-заголовки безопасности — обязательной частью ответа.
Почему это важно: Утечка секретов — самая распространённая причина крупных инцидентов. Неправильные заголовки оставляют приложение беззащитным.
Главная идея
Секреты хранятся в vault или переменных окружения, а заголовки безопасности добавляются на уровне приложения или proxy.
Как это выглядит на практике
- Разработчик случайно коммитит .env с AWS-ключами.
- GitHub секретный сканер детектирует ключ, но кто-то уже успел его скачать.
- Решение: секреты хранятся в Vault/AWS Secrets Manager, а не в репозитории.
- Приложение добавляет заголовки HSTS, CSP, X-Content-Type-Options — закрывает несколько классов атак.
Что происходит под капотом
- Секреты не хранятся в коде, .env не коммитится, используется .env.example.
- Production-секреты — в Vault, AWS Secrets Manager, GCP Secret Manager.
- Заголовки: HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy.
- Rotation: секреты должны периодически меняться, старые ключи отзываются.
Типичные ошибки и заблуждения
- Ошибка: .gitignore защищает от утечек. Любая ошибка в истории = утечка на все времена.
- Ошибка: заголовки безопасности — необязательны. Они закрывают целые классы атак бесплатно.
- Ошибка: секреты можно зашифровать и положить в репо. Это создаёт проблему 'где хранить ключ шифрования'.
- Ошибка: ротация — лишняя сложность. Регулярная ротация ограничивает blast radius утечки.
Ключевые выводы
- Секреты вне кода, всегда.
- Заголовки безопасности — обязательная часть ответа.
- Ротация секретов — критическая практика.
- Секретные сканеры в CI ловят случайные коммиты.
Термины урока
Связь с работой backend-разработчика
Хорошая гигиена работы с секретами и безопасными заголовками — признак зрелой команды. Это базовый уровень безопасности.
Мини-разбор реальной ситуации
Компания три года не ротировала AWS-ключи. Разработчик ушёл, сохранив старый .env — и через полгода в биллинге появились майнинговые инстансы на $40 000. Ротация избежала бы инцидента.
Что запомнить
- Никогда не коммитьте секреты.
- Заголовки безопасности — дешёвый выигрыш.
- Ротация = ограничение blast radius.
Итог
Управление секретами и заголовки безопасности — рутинная, но критичная работа для backend-разработчика.
Комментарии к уроку
Войдите, чтобы оставить комментарий.
Пока нет комментариев — будьте первым.