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

Выберите веб-сервер и защиту, которую нужно включить. Генератор запишет Strict-Transport-Security, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy и Cross-Origin-Opener-Policy в правильном синтаксисе — останется вставить в конфигурацию сайта.

X-Frame-Options
Cross-Origin-Opener-Policy

nginx: вставьте строки в блок server (add_header внутри location отменяет унаследованные там заголовки). Apache: включите mod_headers. Caddy: вставьте блок внутрь сайта. Проверьте ответ через curl -I https://ваш-сайт, прежде чем увеличивать max-age.

Работает в браузере: всё, что вы вводите, никуда не отправляется.

Как пользоваться

  1. Выберите сервер: nginx, Apache, Caddy или простой список заголовков.
  2. Включите нужные заголовки и выберите значения. Для HSTS есть короткие сроки для проверки и сроки в год или два.
  3. Скопируйте результат в конфигурацию, перезагрузите сервер и проверьте ответ командой curl -I.

Что делает каждый заголовок

Заголовок Защищает от
Strict-Transport-Security понижения до HTTP и кражи cookie в открытом Wi-Fi
X-Frame-Options кликджекинга через невидимые фреймы
X-Content-Type-Options: nosniff «угадывания» браузером, что файл — скрипт или стиль
Referrer-Policy утечки полных адресов с токенами и ID на другие сайты
Permissions-Policy запросов камеры, микрофона и геолокации из встроенного контента
Cross-Origin-Opener-Policy доступа чужих окон к вашему (межоконные атаки)

Пример

С настройками по умолчанию и сервером nginx генератор выдаёт:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Frame-Options "DENY" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;

Слово always заставляет nginx добавлять заголовки и к страницам ошибок.

Частые ошибки

  • add_header внутри location отменяет для этого location все add_header, унаследованные из server. Повторите их там или держите в одном месте.
  • Слишком ранний preload. Убрать домен из списка предзагрузки можно только за месяцы.
  • Запрет нужной функции. Permissions-Policy здесь отключает камеру, микрофон и геолокацию для всех источников, включая ваши страницы; если сайту они нужны, не включайте его.

Частые вопросы

Какие заголовки безопасности нужны каждому сайту?

Обычный минимум — Strict-Transport-Security для сайтов на HTTPS, X-Content-Type-Options: nosniff, X-Frame-Options или правило CSP frame-ancestors против кликджекинга и Referrer-Policy. Больше всего защищает Content-Security-Policy, но её нужно настраивать под сайт — соберите её в конструкторе CSP.

Безопасно ли включать HSTS?

Только когда весь сайт, а с includeSubDomains — и все поддомены, работают по HTTPS. Браузеры будут отказываться от HTTP на весь срок max-age. Начните с 5 минут или дня, всё проверьте и только потом поднимайте до года.

Что даёт preload?

Это заявка на включение в встроенный в браузеры список HSTS preload, чтобы HTTPS использовался даже при первом визите. Список требует max-age не меньше 31536000, includeSubDomains и preload, а домен отправляют на hstspreload.org. Исключение из списка занимает много времени, поэтому решайте осознанно.

DENY или SAMEORIGIN для X-Frame-Options?

DENY запрещает показывать ваши страницы во фрейме любым сайтам, включая ваш. SAMEORIGIN разрешает фреймы только с вашего же источника. Если нужно разрешить конкретные чужие сайты, используйте директиву CSP frame-ancestors.

Почему X-XSS-Protection равен 0?

В современных браузерах XSS-фильтра, которым управлял этот заголовок, уже нет, а в старых сам фильтр можно было использовать для атак. Значение 0 выключает его там, где он ещё остался; современная защита — Content-Security-Policy.

Ещё в разделе «Разработчикам»

Все инструменты раздела: Разработчикам ·Обновлено 7 ноября 2026 г.

Настройки конфиденциальности

Google Analytics показывает нам, какими инструментами пользуются и работают ли они. Он может ставить cookie. Ваш выбор сохраняется в этом браузере.