HTTPS, TLS и заголовки безопасности

HTTPS защищает данные в пути, а заголовки безопасности подсказывают браузеру, как вести себя осторожнее.

TLS (Transport Layer Security) — протокол, шифрующий данные между браузером и сервером; HTTPS — это HTTP поверх TLS.

Без TLS данные идут открытым текстом: их можно прочитать и подменить по дороге (атака «человек посередине»). TLS обеспечивает конфиденциальность и целостность канала, а сертификат подтверждает подлинность сервера.

Почему HTTPS обязателен

HTTPS закрывает прослушивание и подмену трафика, защищает cookie с флагом Secure и нужен для многих современных браузерных возможностей. Сегодня HTTP без шифрования считается небезопасным по умолчанию.

Заголовки безопасности

Сервер может прислать заголовки, которые включают дополнительные защитные механизмы браузера.

ЗаголовокЧто делает
Strict-Transport-Security (HSTS)браузер ходит на сайт только по HTTPS
Content-Security-Policyбелый список источников ресурсов (см. урок про CSP)
X-Content-Type-Options: nosniffзапрет «угадывания» типа содержимого
X-Frame-Options / frame-ancestorsзащита от встраивания сайта в чужой фрейм (clickjacking)
Referrer-Policyограничивает, что уходит в заголовке Referer
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Referrer-Policy: no-referrer

HSTS и clickjacking

HSTS заставляет браузер запомнить, что на этот сайт ходят только по HTTPS, исключая случайный переход по HTTP. Clickjacking — обман, когда ваш сайт прозрачно встраивают в чужую страницу поверх ловушки; защита — запрет встраивания через X-Frame-Options или директиву frame-ancestors в CSP.

Как защищаться

  • Включите HTTPS на всём сайте и редирект с HTTP на HTTPS.
  • Добавьте HSTS, чтобы закрепить HTTPS у браузера.
  • Поставьте базовый набор заголовков: nosniff, X-Frame-Options, Referrer-Policy, CSP.
  • Поддерживайте актуальные версии TLS и отключайте устаревшие протоколы и шифры.
  • Следите за сроком действия сертификата (автообновление).

Частые ошибки разработчиков

  • Оставляют часть страниц на HTTP («смешанный контент»), что обесценивает HTTPS.
  • Не ставят заголовки безопасности, считая их необязательными.
  • Используют устаревшие версии TLS и слабые шифры.

Итог

  • TLS/HTTPS шифрует канал и подтверждает подлинность сервера.
  • HSTS закрепляет HTTPS; X-Frame-Options защищает от clickjacking.
  • Базовый набор заголовков безопасности — простая и важная мера.
Проверьте себя
1. Что обеспечивает TLS (HTTPS)?
AУскорение сайта
BШифрование и целостность канала между браузером и сервером + подлинность сервера
CХранение паролей
DЗащиту от SQL-инъекций
2. Зачем нужен заголовок Strict-Transport-Security (HSTS)?
AСжимать страницы
BЗаставить браузер ходить на сайт только по HTTPS
CХранить cookie дольше
DЗапрещать JavaScript
3. Какой заголовок защищает от clickjacking (встраивания сайта в чужой фрейм)?
AX-Content-Type-Options
BX-Frame-Options / frame-ancestors
CReferrer-Policy
DCache-Control