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

Протоколы и стандарты
HTTP-заголовки, задающие для браузера правила защиты сайта и его пользователей.
← Вернуться к глоссарию

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

HTTP-заголовки безопасности задают браузеру правила обработки контента и соединения. Они снижают риск атак, но не заменяют безопасный код и контроль доступа.

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

HSTS и строгий HTTPS-режим

HSTS принуждает браузер использовать HTTPS после получения корректного заголовка. Проверяйте срок и preload до включения.

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

CSP и политика источников

CSP ограничивает источники скриптов, стилей, изображений и соединений. Начните с Report-Only и добавляйте исключения осознанно.

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

Ограничение фреймов

DENY или SAMEORIGIN ограничивает встраивание и снижает clickjacking.

X-Frame-Options: DENY

X-Frame-Options: SAMEORIGIN

Защита MIME-типа

nosniff запрещает угадывание MIME-типа и неожиданное исполнение контента.

X-Content-Type-Options: nosniff

Дополнительные заголовки безопасности

Referrer-Policy ограничивает передачу URL, Permissions-Policy отключает ненужные возможности браузера, а Cache-Control защищает чувствительные ответы от кэширования.

ЗаголовокНазначениеПример значения
Заголовок безопасности X-XSS-ProtectionФильтр XSS (устаревший)1; mode=block
Заголовок безопасности Referrer-PolicyУправление данными referrerstrict-origin-when-cross-origin
Заголовок безопасности Permissions-PolicyОграничения функцийgeolocation=(), camera=()
Заголовок безопасности Cross-Origin-Opener-PolicyИзоляция процессовsame-origin
Заголовок безопасности Cross-Origin-Embedder-PolicyИзоляция ресурсовrequire-corp

Примеры реализации

Конфигурация Nginx

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

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

add_header X-Frame-Options "SAMEORIGIN" always;

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

add_header Content-Security-Policy "default-src 'self'" always;

Конфигурация Apache

Проверяйте mod_headers, виртуальный host и результат конечного HTTPS-ответа, а не только файл конфигурации.

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

Header always set X-Frame-Options "SAMEORIGIN"

Header always set X-Content-Type-Options "nosniff"

Заголовки и состояние домена

Почему заголовки важны для доменов

Корректные заголовки укрепляют защиту сайта, но DNS, TLS и почтовая конфигурация требуют отдельных проверок.

Проверка заголовков

Проверяйте curl и браузером разные пути, кэш, redirect и ошибки. Фиксируйте timestamp и точный ответ.

Лучшие практики

Тестируйте политики в staging, документируйте владельца, избегайте широких wildcard и отслеживайте изменения после каждого релиза.

Частые критерии оценки

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

ОценкаТипичные требования
A+Все критические заголовки, HSTS preload
AHSTS, CSP, X-Frame-Options, X-Content-Type
BНекоторые заголовки отсутствуют
C/DМинимальный набор заголовков безопасности
FЗаголовки безопасности отсутствуют

Применяйте эти знания на практике

Используйте API DomScan для проверки доступности доменов, их состояния и многого другого.