Заголовки безопасности сайта: что это и зачем они нужны в 2026 году

20 сентября 2026 · 8 мин чтения

Большинство владельцев сайтов знают про HTTPS. Но HTTPS — это только первый уровень защиты. Есть ещё 6 HTTP-заголовков, которые защищают сайт от атак, о которых вы могли не слышать: кликджекинг, XSS, MIME-sniffing, утечка реферера и другие.

Разберём каждый заголовок: что это, зачем, что будет, если его нет, и как проверить свой сайт.

Что такое HTTP-заголовки безопасности

Это специальные заголовки, которые сервер отправляет браузеру вместе со страницей. Они говорят браузеру: «Вот правила, как обрабатывать этот сайт». Если заголовков нет — браузер использует настройки по умолчанию, которые менее безопасны.

Проверить свои заголовки можно в DevTools (F12) → вкладка Network → выбрать главный запрос → Headers, либо через бесплатный экспресс-аудит TetraHand — он показывает все заголовки сразу.

1. Strict-Transport-Security (HSTS)

Что делает Говорит браузеру: «Общайся с этим сайтом только по HTTPS».

Зачем нужен: защищает от атак типа SSL-stripping. Злоумышленник перехватывает трафик, подменяет HTTPS на HTTP и перехватывает пароли и данные.

Что будет, если его нет: злоумышленник в публичном Wi-Fi (кафе, аэропорт) может перехватить сессию пользователя. Подробнее — в отдельной статье.

Как выглядит:

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

Как настроить в nginx:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

2. Content-Security-Policy (CSP)

Что делает Указывает браузеру, откуда можно загружать скрипты, стили, изображения и шрифты.

Зачем нужен: главная защита от XSS-атак (Cross-Site Scripting). Если злоумышленник внедрит скрипт на вашу страницу — CSP заблокирует его выполнение, потому что домен не в белом списке.

Что будет, если его нет: при XSS-атаке злоумышленник может украсть cookie пользователя, перенаправить его на фишинговый сайт, выполнить любые действия от его имени.

Пример:

Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.cdn.com; style-src 'self' 'unsafe-inline'

Важно: CSP — самый сложный заголовок. Неправильная настройка может сломать сайт (например, если у вас inline-скрипты, а CSP их запрещает). Начните с режима Content-Security-Policy-Report-Only — он только логирует нарушения, не блокирует.

3. X-Frame-Options

Что делает Запрещает или разрешает встраивать ваш сайт в iframe на других сайтах.

Зачем нужен: защита от кликджекинга. Злоумышленник встраивает ваш сайт в свой iframe, накладывает сверху прозрачные кнопки — и пользователь, думая, что кликает по вашему сайту, на самом деле нажимает «Перевести деньги» или «Подтвердить заказ».

Что будет, если его нет: любой сайт может встроить ваш сайт в iframe и обманывать пользователей от вашего имени.

Значения:

Как настроить в nginx:

add_header X-Frame-Options "SAMEORIGIN" always;

4. X-Content-Type-Options

Что делает Запрещает браузеру «угадывать» MIME-тип файла.

Зачем нужен: защита от MIME-sniffing атак. Без этого заголовка браузер может «подумать», что ваш текстовый файл — это HTML или JavaScript, и выполнить его.

Что будет, если его нет: злоумышленник загружает на ваш сайт файл (например, через форму загрузки аватара), браузер определяет его как HTML и выполняет — это открывает путь к XSS.

Как настроить в nginx:

add_header X-Content-Type-Options "nosniff" always;

5. Referrer-Policy

Что делает Управляет тем, какая информация о реферере передаётся при переходе на другой сайт.

Зачем нужен: защита приватности и предотвращение утечек. Без этого заголовка браузер передаёт полный URL вашей страницы на все внешние сайты. Если у вас в URL есть токены, ID пользователя, параметры — они утекут.

Что будет, если его нет: ссылки на внешние сайты передают полный URL вашей страницы. Если пользователь переходит с /reset?token=abc123 на внешний сайт — токен утечёт в логи этого сайта.

Рекомендуемое значение:

Referrer-Policy: strict-origin-when-cross-origin

Как настроить в nginx:

add_header Referrer-Policy "strict-origin-when-cross-origin" always;

6. Permissions-Policy

Что делает Управляет доступом к возможностям браузера: камера, микрофон, геолокация, уведомления.

Зачем нужен: если злоумышленник внедрит скрипт на вашу страницу — он может запросить доступ к камере или микрофону пользователя. Permissions-Policy блокирует это.

Что будет, если его нет: XSS-скрипт может запросить доступ к геолокации, камере, микрофону. Пользователь может неосознанно дать разрешение.

Пример:

Permissions-Policy: geolocation=(), microphone=(), camera=(), payment=(self)

Это значит: геолокация, микрофон, камера — полностью запрещены. Payment API разрешён только для вашего домена.

Сводная таблица

Заголовок Защищает от Приоритет
HSTS SSL-stripping, перехват трафика 🔴 Критично
CSP XSS-атак 🔴 Критично
X-Frame-Options Кликджекинга 🟠 Важно
X-Content-Type-Options MIME-sniffing 🟠 Важно
Referrer-Policy Утечки URL и токенов 🟡 Желательно
Permissions-Policy Доступ к камере, микрофону, геолокации 🟡 Желательно

Проверьте заголовки безопасности своего сайта

Бесплатный экспресс-аудит за 2 минуты: покажет все заголовки, SSL, открытые файлы

Проверить сайт →

Как проверить свой сайт за 2 минуты

Способ 1: Chrome DevTools

Откройте сайт в Chrome → F12 → вкладка Network → обновите страницу → выберите главный запрос → Headers. Ищите заголовки в разделе Response Headers.

Способ 2: наш сервис

Введите URL на главной — получите отчёт за 2 минуты. В разделе «Безопасность» будут все 6 заголовков с цветовой индикацией.

Способ 3: securityheaders.com

Бесплатный сервис от Scott Helme. Показывает оценку от A до F и рекомендации.

Что делать в первую очередь

Если у вас нет ни одного из этих заголовков — начните с трёх:

  1. HSTS — одна строка в nginx, критично для безопасности.
  2. X-Frame-Options: SAMEORIGIN — одна строка, защита от кликджекинга.
  3. X-Content-Type-Options: nosniff — одна строка, защита от MIME-sniffing.

CSP — сложнее. Начните с Report-Only режима, посмотрите логи, потом включите полностью.

Вывод

Заголовки безопасности — это бесплатная защита, которую большинство сайтов игнорирует. Настройка занимает 5 минут, а эффект — снижение риска взлома в разы.

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

← Все статьи