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-referrerHSTS и 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.
- Базовый набор заголовков безопасности — простая и важная мера.