Используйте строгую политику HSTS. Используйте строгую политику HSTS.

Протоколы с открытым текстом, такие как HTTP, могут быть уязвимы для атак с перехватом , при которых злоумышленник может прочитать передаваемый контент. Протокол TLS может шифровать трафик и значительно затруднять злоумышленникам использование этих данных в случае их перехвата.

Однако злоумышленники могут обойти TLS, принудительно переведя зашифрованные соединения на использование открытого HTTP-запроса. Для решения этой проблемы можно использовать заголовок ответа HTTP Strict Transport Security (HSTS) . HSTS заставляет браузер пользователя открыть веб-сайт, используя TLS, и не позволяет ему вернуться к открытому HTTP-запросу в течение заданного времени.

Browser Support

  • Хром: 4.
  • Край: 12.
  • Firefox: 4.
  • Сафари: 7.

Source

Как провалился аудит Lighthouse

Предупреждение от Lighthouse об отсутствии заголовка ответа HSTS.

Аудит выявил следующие проблемы с заголовком HSTS:

  • Если заголовок HSTS вообще не найден.
  • Если отсутствует одна из рекомендуемых директив ( max-age , includeSubDomains , preload )
  • Если длительность действия директивы max-age составляет менее одного года (31536000 секунд).
  • Если при разборе заголовка обнаружена синтаксическая ошибка, например, неизвестная директива.

Настройте сильную политику HSTS

Оптимальная конфигурация заголовка HSTS выглядит следующим образом:

Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
  • Директива max-age определяет время, в течение которого браузер пользователя будет вынужден посещать веб-сайт только по протоколу TLS (в секундах). По истечении этого времени пользователи снова смогут зайти на сайт по обычному HTTP, если веб-сайт не предоставит заголовок HSTS (или будет временно перенаправлен с HTTP на HTTPS).
  • Установка директивы includeSubDomains принудительно применяет заголовок ко всем поддоменам URL-адреса страницы, изначально отправляющей этот заголовок. Например, отправка заголовка HSTS с google.com , включающего директиву includeSubDomains принудительно применит заголовок HSTS к mail.google.com .
  • Установка директивы preload и отправка домена в службу предварительной загрузки HSTS приведёт к компиляции домена в исполняемые файлы браузера, использующие предварительно загруженный список HSTS. Это справедливо не только для Google Chrome.

Развёртывание заголовка HSTS сопряжено с определёнными рисками. Любые функции, требующие незашифрованного HTTP-соединения, фактически будут недоступны на время, заданное директивой max-age . Возможно, даже на больший срок, если применяется директива preload .

Для снижения рисков, связанных с внедрением, рекомендуется поэтапный подход:

  1. Начните с небольшого значения max-age и добавьте только includeSubDomains (без preload ):

    max-age=3600; includeSubDomains
    
  2. После периода восстановления (например, одной недели) без сообщений о проблемах увеличьте max-age . Например:

    max-age=604800; includeSubDomains
    
  3. Если этот начальный этап будет успешным в течение длительного периода времени (например, трех месяцев), веб-сайт и его поддомены следует добавить в список предварительной загрузки HSTS, а также добавить директиву preload .

    max-age=63072000; includeSubDomains; preload