HSTS (RFC 6797) — HTTP-заголовок `Strict-Transport-Security`, говорящий браузеру: "с сегодня и на X секунд заходи на этот домен только по HTTPS, никаких http:// вообще". Защищает от sslstrip-атак (MITM подменяет https-ссылки на http) и от случайных http-редиректов.
Пример: `Strict-Transport-Security: max-age=31536000; includeSubDomains; preload`. Разбор: (1) `max-age=31536000` — год, столько браузер помнит. (2) `includeSubDomains` — все поддомены тоже HTTPS-only. (3) `preload` — заявка на добавление в HSTS Preload List (встроен в Chrome/Firefox/Safari) — тогда даже первый заход по http блокируется.
Порядок внедрения: (1) сначала весь сайт полностью на HTTPS (Let's Encrypt), (2) `max-age=300` (5 мин) — тест на неделю, (3) `max-age=86400` (сутки) — тест на неделю, (4) `max-age=31536000` — прод, (5) при желании подать заявку на hstspreload.org.
Опасность: `includeSubDomains` без проверки — если у вас `dev.site.com` без TLS, сломается вся разработка. `preload` необратим — удаление из списка занимает недели даже при явной заявке.