az.pon.az Тестер сетевых протоколов

Security-заголовки сайта: HSTS, CSP, X-Frame-Options и зачем они нужны

Помимо самого содержимого страницы, сервер отправляет браузеру служебные HTTP-заголовки, которые включают дополнительные уровни защиты. Их легко забыть настроить — разбираемся, какие они бывают и от чего каждый защищает.

Strict-Transport-Security (HSTS)

Заставляет браузер и дальше всегда открывать сайт только по HTTPS, даже если пользователь наберёт адрес с http://. Без HSTS самый первый переход по http:// теоретически может быть перехвачен злоумышленником в той же сети (downgrade-атака) раньше, чем сработает редирект на HTTPS.

Content-Security-Policy (CSP)

Явно перечисляет, откуда странице разрешено загружать скрипты, стили, изображения и так далее. Это главная защита от XSS: даже если на сайте где-то найдётся уязвимость, позволяющая внедрить чужой код, строгий CSP не даст браузеру его выполнить, потому что источник не в разрешённом списке.

X-Frame-Options

Запрещает встраивать страницу в <iframe> на чужих сайтах. Это защита от clickjacking — когда мошеннический сайт накладывает невидимый iframe с вашей страницей (например, с кнопкой «Подтвердить перевод») поверх своей собственной безобидной на вид кнопки.

X-Content-Type-Options

Значение nosniff запрещает браузеру самому «угадывать» тип содержимого файла, если он отличается от заявленного в Content-Type. Без этого заголовка иногда можно обойти фильтры и заставить браузер исполнить файл не по его реальному назначению.

Referrer-Policy

Управляет тем, сколько информации об адресе текущей страницы передаётся стороннему сайту, когда пользователь переходит по ссылке. Слишком «щедрая» политика по умолчанию может случайно раскрывать внутренние URL (например, с токенами в адресе) сторонним сайтам.

Permissions-Policy

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

Более новые: COOP, CORP, COEP

Cross-Origin-Opener-Policy, Cross-Origin-Resource-Policy и Cross-Origin-Embedder-Policy — более новая группа заголовков, изолирующая вкладку браузера от других сайтов на уровне процесса. Защищают от части атак класса Spectre и от прямой подгрузки ваших ресурсов чужими сайтами. Нужны не всем сайтам одинаково — COEP, в частности, может сломать встраивание сторонних виджетов, если включить его не глядя.

Как проверить свой сайт

Инструмент «Security-заголовки сайта» на az.pon.az проверяет все перечисленные заголовки одним запросом, показывает счёт (сколько из основных настроено) и готовую строку заголовка для каждого из отсутствующих — можно сразу скопировать в конфиг сервера.

Проверить security-заголовки своего сайта → открыть инструмент на az.pon.az