Типовая проблема

HSTS не включён (Strict-Transport-Security отсутствует)

Severity: Высокий

HTTP Strict Transport Security (HSTS) — HTTP-заголовок, приказывающий браузеру всегда использовать HTTPS для данного домена в течение указанного времени. Без HSTS пользователь, набравший http://example.com, уязвим для SSL-stripping.

Симптомы

  • Заголовок Strict-Transport-Security отсутствует в ответе
  • Или max-age меньше 31536000 (1 год)
  • AuditGuard: finding 'HSTS: not configured' severity HIGH

AuditGuard обнаруживает эту проблему автоматически.

Почему это риск

SSL-stripping — атака, при которой злоумышленник в одной сети (кафе, аэропорт) перехватывает HTTP-запрос до редиректа на HTTPS и начинает работать как прозрачный прокси. Пользователь думает, что на сайте, а злоумышленник видит весь трафик. HSTS предотвращает это: браузер отказывается делать HTTP-запрос вообще.

Как исправить

Шаг 1

Nginx: add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

Шаг 2

Apache: Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Шаг 3

Убедитесь, что HSTS добавляется только для HTTPS (не для HTTP-блока в nginx)

Шаг 4

Начните с max-age=300 для тестирования, затем увеличьте до 31536000

Шаг 5

Для includeSubDomains убедитесь, что ВСЕ субдомены работают по HTTPS

Шаг 6

Для preload-статуса подайте домен на hstspreload.org

Как AuditGuard обнаруживает проблему

AuditGuard проверяет наличие заголовка Strict-Transport-Security в HTTPS-ответе, проверяет значение max-age, наличие includeSubDomains и preload.

Проверьте ваш сайт прямо сейчас

AuditGuard находит эту проблему и 340+ других автоматически. Результат — за 2–5 минут.