Spec-Zone.ru › HTTP

Строгий транспорт HTTPS

Строгий транспорт HTTPS

Заголовок ответа HTTP Strict-Transport-Security (часто сокращенно как HSTS) сообщает браузерам, что к сайту следует обращаться только по протоколу HTTPS, и что любые будущие попытки доступа к нему по протоколу HTTP должны автоматически перенаправляться на HTTPS.

Примечание: Это более безопасно, чем просто настройка перенаправления с HTTP на HTTPS (301) на вашем сервере, где начальное HTTP-соединение всё ещё уязвимо к атаке «человек посередине».

Тип заголовка Заголовок ответа
Запрещённое имя заголовка нет

Синтаксис

Strict-Transport-Security: max-age=<expire-time>
Strict-Transport-Security: max-age=<expire-time>; includeSubDomains
Strict-Transport-Security: max-age=<expire-time>; includeSubDomains; preload

Директивы

max-age=<expire-time>

Время в секундах, которое браузер должен помнить, что к сайту следует обращаться только по протоколу HTTPS.

includeSubDomains Необязательно

Если этот необязательный параметр указан, это правило применяется и ко всем дочерним доменам сайта.

preload Необязательно Нестандартный

Подробнее см. Предварительная загрузка Strict Transport Security. При использовании preload, директива max-age должна быть не менее 31536000 (1 год), и директива includeSubDomains должна быть присутствовать. Не входит в спецификацию.

Описание

Если веб-сайт принимает соединение через HTTP и перенаправляет на HTTPS, посетители могут первоначально взаимодействовать с незащищённой версией сайта перед перенаправлением, если, например, посетитель введёт http://www.foo.com/ или даже просто foo.com. Это создаёт возможность атаки «человек посередине». Перенаправление может быть использовано для перенаправления посетителей на вредоносный сайт вместо безопасной версии исходного сайта.

Заголовок HTTP Strict Transport Security сообщает браузеру, что он никогда не должен загружать сайт по протоколу HTTP и должен автоматически преобразовывать все попытки доступа к сайту по протоколу HTTP в запросы HTTPS.

Примечание: Заголовок Strict-Transport-Security игнорируется браузером, когда ваш сайт был доступен только по протоколу HTTP. После того, как ваш сайт был доступен по протоколу HTTPS без ошибок сертификата, браузер понимает, что ваш сайт поддерживает HTTPS, и будет учитывать заголовок Strict-Transport-Security. Браузеры делают это, так как злоумышленники могут перехватывать HTTP-соединения с сайтом и вставлять или удалять заголовок.

Пример сценария

Вы входите в бесплатную точку доступа Wi-Fi в аэропорту и начинаете серфинг в интернете, посещая свой онлайн-банковский сервис, чтобы проверить свой баланс и оплатить несколько счетов. К сожалению, используемая вами точка доступа Wi-Fi на самом деле является ноутбуком хакера, и он перехватывает ваш исходный HTTP-запрос и перенаправляет вас на клон сайта вашего банка вместо реального. Теперь ваши личные данные доступны хакеру.

Строгий транспорт HTTPS решает эту проблему; пока вы хотя бы один раз посетили веб-сайт вашего банка по HTTPS, и веб-сайт банка использует Strict Transport Security, ваш браузер будет знать, как автоматически использовать только HTTPS, что предотвращает хакерам подобные атаки «человек посередине».

Как браузер с этим справляется

В первый раз, когда ваш сайт доступен по протоколу HTTPS, и он возвращает заголовок Strict-Transport-Security, браузер записывает эту информацию, так что все будущие попытки загрузки сайта по протоколу HTTP будут автоматически использовать HTTPS вместо этого.

Когда время истечения, указанное в заголовке Strict-Transport-Security, истекает, следующая попытка загрузить сайт по протоколу HTTP будет продолжена как обычно, вместо автоматического использования HTTPS.

Всякий раз, когда заголовок Strict-Transport-Security передаётся браузеру, он будет обновлять срок действия для этого сайта, так что сайты могут обновлять эту информацию и предотвратить истечение срока действия. Если необходимо отключить Strict Transport Security, установка max-age на 0 (через подключение HTTPS) немедленно приведёт к истечению срока действия заголовка Strict-Transport-Security, позволяя доступ через HTTP.

Предварительная загрузка Strict Transport Security

Google поддерживает сервис предварительной загрузки HSTS. Следуя инструкциям и успешно отправив ваш домен, вы можете убедиться, что браузеры будут подключаться к вашему домену только по защищённым соединениям. Хотя сервис размещается Google, все браузеры используют этот предварительно загруженный список. Однако это не часть спецификации HSTS и не должно рассматриваться как официальное требование.

  • Информация о списке предварительной загрузки HSTS в Chrome : https://www.chromium.org/hsts
  • Просмотр списка предварительной загрузки HSTS в Firefox : nsSTSPreloadList.inc

Примеры

Все текущие и будущие дочерние домены будут использовать HTTPS на срок max-age в 1 год. Это блокирует доступ к страницам или дочерним доменам, которые могут быть доступны только по протоколу HTTP.

Strict-Transport-Security: max-age=31536000; includeSubDomains

Если max-age в 1 год приемлемо для домена, однако, два года являются рекомендуемым значением, как указано на https://hstspreload.org.

В следующем примере max-age установлено на 2 года и дополняется preload, что необходимо для включения в списки предварительной загрузки HSTS всех основных веб-браузеров, таких как Chromium, Edge и Firefox.

Strict-Transport-Security: max-age=63072000; includeSubDomains; preload

Спецификации

Спецификация
HTTP Strict Transport Security (HSTS)
# раздел-6.1

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet
Strict-Transport-Security
4
12
4
11
12
7
4.4
18
Да
Нет
7
1.0

См. также

  • Статья в блоге: HTTP Strict Transport Security уже доступен!
  • Статья в блоге: HTTP Strict Transport Security (принудительное использование HTTPS)
  • Статья OWASP: HTTP Strict Transport Security
  • Википедия: HTTP Strict Transport Security
  • Сервис предварительной загрузки HSTS
  • Функции, ограниченные безопасными контекстами

© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API