• Artmedia
  •  / 
  • Статьи
  •  / 
  • HSTS — как максимально защитить свой сайт

HSTS — как максимально защитить свой сайт

19 ноября 2020

Протокол HSTSВы радостно выкатили свежий сайт в сеть, а Гуглу он не нравится: вместо загрузки всех ваших красивых анимированных прелоадов, крутых параллаксов и прочих wow-эффектов, он говорит пользователям, что соединение небезопасно и вот это вот всё. Первое впечатление, как известно, имеет значение, поэтому самое время позаботиться о включении HSTS — чтобы пользователи видели красоту, а не подозрительные предостережения.

Что такое HSTS

HSTS расшифровывается как HTTP Strict Transport Security — это механизм, после включения которого пользователи видят только защищенные страницы вашего сайта.

Что он умеет:

  • автоматически преобразовывает небезопасные HTTP-ссылки в безопасные HTTPS-ссылки;
  • не позволяет пользователю проигнорировать сообщение о проблемах с сертификатом;
  • позволяет добавить сайт в список предварительной загрузки HSTS, чтобы защитить его даже при первой загрузке браузером.

Включается HSTS с помощью специального заголовка ответа «Strict-Transport-Security».

Когда HSTS настроен правильно, то есть без ошибок в конфигурации, он блокирует для просмотра все незащищенные версии страниц вашего сайта.

При любой попытке посетителей перейти на небезопасную версию страницы сайта (http://), они будут автоматически перенаправлены на ее защищенную версию (https://).

Это как 301 редирект, только на уровне браузера, а не на уровне веб-страницы. Такое перенаправление круче — оно всегда использует только https://, даже при первой загрузке браузером, в отличие от 301 редиректа.

Как максимально защитить свой сайт с помощью HSTS

Для этого надо сделать два шага:

  1. Включить HSTS на сайте.
  2. Добавить сайт в список предварительной загрузки HSTS.

Чтобы включить HSTS на сайте

  • Выберите вариант настроек для заголовка Strict-Transport-Security.
  • Добавьте настройки для заголовка Strict-Transport-Security в конфигурацию веб-сервера.

Как выбрать вариант настроек для заголовка Strict-Transport-Security

Заголовок Strict-Transport-Security может содержать разный набор переменных. От того, какие переменные содержит заголовок, зависит степень защиты сайта. Возможны три варианта.

Базовая настройка (наименее безопасная)

Strict-Transport-Security: max-age=10886400

Приведенный выше пример — самая простая версия заголовка.

  • Не влияет на поддомены.
  • Сайт не может быть включен в список предварительной загрузки.

Список предварительной загрузки HSTS — список сайтов, которые утверждает Google, чтобы Chrome и другие браузеры еще до загрузки этих сайтов понимали, что все их страницы нужно открывать только через https.

Такая настройка наименее безопасна, потому что не защищает поддомены и не позволяет сайту попасть в список предварительной загрузки HSTS. То есть, пользователи, которые впервые загружают ваш сайт в браузере, могут использовать для этого незащищенную ссылку http://.

Более безопасная настройка

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

Приведенный выше пример — более надежная версия заголовка:

  • Относительно безопасная настройка.
  • Включает HSTS на поддоменах.
  • Сайт не может быть включен в список предварительной загрузки.

Такая настройка включает HSTS не только для домена, но и для всех его поддоменов, но этого все еще недостаточно, чтобы сайт попал в список предварительной загрузки HSTS.

Наиболее безопасная и рекомендуемая настройка

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

Приведенный выше пример является наиболее безопасной версией заголовка. Рекомендуем именно такую настройку, поскольку:

  • это самая безопасная настройка,
  • она включает HSTS на поддоменах,
  • сайт может быть включен в список предварительной загрузки.

Переменные

  • Strict-Transport-Security: — имя заголовка.
  • max-age= — количество времени в секундах, в течение которого все http:// перенаправляются на https://.
  • includeSubDomains — включает HSTS на всех поддоменах.
  • preload — дает разрешение на внесение сайта в список предварительной загрузки.

Как только вы определили настройки для заголовка, можно добавлять их в конфигурацию веб-сервера.

Как попасть в список предварительной загрузки HSTS

Убедитесь, что сайт соответствует требованиям

Если у вас есть действующий и корректно настроенный на вашем веб-сервере сертификат и вы выполнили все действия, описанные в этой статье, то, скорее всего, ваш сайт соответствует требованиям. Заявленные требования:

  • Действующий сертификат.
  • Только HTTPS-трафик (весь HTTP-трафик должен быть перенаправлен на HTTPS).
  • HSTS включен на базовом домене.
  • HSTS включен на всех поддоменах, в том числе, на www, если для него существует запись DNS.
  • Срок действия — не менее восемнадцати недель (10 886 400 секунд).
  • Указан токен includeSubdomains.
  • Указан токен предварительной загрузки.
  • У любой страницы, на которую ваш сайт перенаправляет пользователя, должен быть заголовок HSTS.

Введите свой домен в в список предварительной загрузки HSTS

Перейдите в список предварительной загрузки и введите домен сайта. Дальше есть два сценария: либо вам сообщат, что сайт не соответствует требованиям для попадания в список, либо — что все ок. Статус домена можно отслеживать.

Ждите

Это долгий процесс. Может уйти несколько недель, пока сайт утвердят в список, и несколько месяцев, пока список окажется в свежих версиях Chrome и Firefox.

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

Продвижение сайтов Алматы

Источник: blog.sibirix.ru