Что такое HSTS?
HSTS (HTTP Strict Transport Security) — механизм безопасности, при котором браузер обращается к сайту только по HTTPS, а небезопасные http-адреса автоматически заменяет на защищённые.
HSTS расшифровывается как HTTP Strict Transport Security, то есть «строгая транспортная безопасность». Сайт сам сообщает браузеру: работай со мной только по HTTPS, и дальше браузер не даёт пользователю открыть незащищённую версию — даже если он введёт адрес вручную. Бизнесу это важно, потому что закрывает самый частый сценарий утечки данных: первый незашифрованный запрос, который легко перехватить и подменить.
Как работает HSTS
Сервер отдаёт вместе с ответом заголовок Strict-Transport-Security — например, со значением max-age=31536000; includeSubDomains. Получив его по защищённому соединению, браузер запоминает домен и на указанный срок больше не делает ни одного незашифрованного запроса: ссылки, закладки и адреса, введённые как «http://», превращаются в «https://» ещё до отправки данных.
Запись хранится в локальном кэше браузера, но не в обычном веб-кэше страниц — очистка истории её не удаляет.
Ключевых параметров три: max-age — сколько секунд действует правило; includeSubDomains — распространять ли политику на все поддомены, включая служебные; preload — заявка на добавление домена в предзагружаемый список браузеров.
Чем HSTS отличается от обычного редиректа на HTTPS
Многие сайты просто перенаправляют посетителя с http на https через 301-редирект. Это лучше, чем ничего, но первый запрос всё равно уходит по незащищённому протоколу HTTP, и его может перехватить злоумышленник в открытой Wi-Fi-сети, подменив ответ. HSTS закрывает эту щель: небезопасный запрос не отправляется вообще, поэтому подмена становится технически невозможной.
Есть и второе отличие — поведение при ошибке сертификата. Без HSTS пользователь увидит предупреждение и сможет нажать «всё равно продолжить». С HSTS такой кнопки нет: соединение просто не состоится.
Как включить HSTS и что даёт preload
Порядок действий к 2026 году почти не изменился: сначала убеждаются, что протокол HTTPS корректно работает на всех страницах и поддоменах, устраняют смешанный контент, и только затем включают заголовок.
- Отдайте заголовок Strict-Transport-Security с коротким max-age — например, 300 секунд, это тестовый режим.
- Убедившись, что ничего не сломалось, увеличьте max-age до 31536000 (год) и добавьте includeSubDomains.
- Добавьте директиву preload и подайте домен на hstspreload.org.
Preload-список — это база доменов, вшитая в браузеры на Chromium, Firefox и Safari. Для таких сайтов политика действует с самого первого визита, ещё до того, как браузер получит заголовок. Для коммерческого проекта это фактически стандарт: посетитель защищён даже при первом заходе, а редиректы с http исчезают из цепочки.
Типичные ошибки
- Preload раньше времени. Если хотя бы один поддомен не поддерживает HTTPS, он перестанет открываться у пользователей, и быстро это не откатить.
- Слишком короткий max-age. Значение вроде 3600 защищает всего час; практический смысл есть от полугода и больше.
- Заголовок только на части страниц. Политика должна отдаваться на всём домене, иначе браузер может её не запомнить.
- Смешанный контент. Картинки, скрипты и шрифты по http не становятся защищёнными автоматически — их нужно перевести на https вручную.
- Отказ от HTTPS «на время». После попадания в preload-лист домен остаётся там надолго, и возврат к http сломает доступ для части аудитории.
Вывод
HSTS — недорогая настройка, которая закрывает целый класс атак и подмену трафика, а заодно убирает лишние редиректы. К 2026 году он стал частью базовой гигиены сайта: HTTPS — обязательное условие для поиска, рекламы и попадания в ответы ИИ-поиска, а HSTS делает работу по защищённому протоколу устойчивой и предсказуемой. Проверить собственный заголовок можно за пару минут — и это тот случай, когда эффект остаётся на годы.