К содержанию

Главная · Блог · HTTP-заголовки безопасности: что настроить на сайте

Оставить заявку

Новый формат

HTTP-заголовки безопасности: что настроить на сайте

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

Ниже — практичный набор security-заголовков. Общая схема запроса/ответа — в статье про протокол HTTP; здесь фокус на защите. Перед правками — бэкап конфига и проверка на staging.

Поделиться
Telegram VK

Что такое HTTP-заголовки

При открытии URL браузер получает не только HTML, но и метаданные ответа: `Content-Type`, `Location`, `Cache-Control`, cookie-флаги, security-директивы. Без них протокол «не знает», как безопасно показать страницу.

Заголовки безопасности не заменяют обновления CMS и пароли. Это слой защиты в браузере поверх нормальной гигиены сервера.

Перед настройкой:

  • бэкап nginx/Apache/`.htaccess`;
  • проверка на копии сайта;
  • список своих доменов, CDN, аналитики, виджетов.

Протокол HTTP HTTPS и SEO

HSTS: только HTTPS

`Strict-Transport-Security` говорит браузеру: с этого хоста ходить только по HTTPS заданное время. Снижает риск отката на открытый HTTP и части атак на подмену.

Включайте после того, как сертификат и редиректы стабильны. Опции `includeSubDomains` и `preload` — осознанно: ошибочный preload сложно откатить.

Проверьте себя

Мини-тест: HTTP-заголовки

Два вопроса.

1 HSTS без рабочего HTTPS…
2 X-XSS-Protection как основа защиты…

Кликджекинг и MIME: X-Frame-Options, X-Content-Type-Options

`X-Frame-Options` (и аналог в CSP `frame-ancestors`) ограничивает встраивание сайта в iframe чужих страниц — защита от кликджекинга. Типичные значения: `DENY` или `SAMEORIGIN`.

`X-Content-Type-Options: nosniff` запрещает браузеру «угадывать» тип файла мимо заявленного `Content-Type` — меньше сюрпризов с исполнением скриптов.

CSP: политика контента

`Content-Security-Policy` задаёт, откуда можно грузить скрипты, стили, картинки, фреймы. Это главный современный инструмент против многих XSS при правильной настройке.

Начните с инвентаризации доменов (свой хост, CDN, аналитика, чат). Режим Report-Only помогает увидеть нарушения без поломки. Резкий `default-src 'none'` без подготовки почти всегда ломает виджеты.

Referrer-Policy и Permissions-Policy

`Referrer-Policy` ограничивает, сколько URL уходит в `Referer` при переходах — меньше утечки путей и query. Частый баланс: `strict-origin-when-cross-origin`.

`Permissions-Policy` (ранее Feature-Policy) отключает или ограничивает мощные API браузера (камера, микрофон, геолокация), если сайту они не нужны.

Минимальный набор на старт:

  • HSTS (после HTTPS);
  • X-Content-Type-Options: nosniff;
  • frame-ancestors / X-Frame-Options;
  • Referrer-Policy;
  • черновик CSP в Report-Only.

Как внедрить и проверить

Задайте заголовки в nginx/`add_header`, Apache/`Header set` или панели хостинга. На PHP в шаблоне — запасной вариант, хуже для статики и кэша.

После деплоя проверьте главную, личный кабинет, формы и страницы с виджетами. Смотрите консоль на CSP-ошибки. Документируйте политику для команды, чтобы новый скрипт аналитики не «сломал прод» сюрпризом.

Безопасность сайта .htaccess и 301

Практика

Чеклист security-заголовков

Сначала staging, потом прод.

0 / 7 готово

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

Где смотреть заголовки?

DevTools → Network → ответ документа, `curl -I https://сайт/`, онлайн-сканеры security headers. Сверяйте именно боевой HTTPS-хост.

Куда прописывать?

В конфиг веб-сервера (nginx, Apache/`.htaccess`), иногда в приложение (PHP `header()`, middleware). Предпочтителен сервер/CDN — один раз для всего сайта.

X-XSS-Protection ещё нужен?

В современных браузерах устарел и может вредить. Опора — CSP, а не старый XSS-фильтр. Не считайте его основой защиты.

Сломает ли CSP сайт?

Строгий CSP без учёта скриптов — да. Начинайте с Report-Only или мягкой политики, смотрите отчёты, затем ужесточайте.

HSTS без HTTPS?

Нельзя. Сначала стабильный HTTPS и редирект http→https, потом HSTS.

Это влияет на SEO?

Косвенно: безопасность и доверие, меньше риска взлома/спама. Прямого «заголовка для ТОП» нет. Позиции — следствие работ на сайте; планово месяцы после старта SEO.

Feature-Policy или Permissions-Policy?

Актуальное имя — Permissions-Policy (ограничение камеры, геолокации и т.п.). Старое Feature-Policy встречается в гайдах.

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

Настроим HSTS, CSP и базовый набор — с проверкой виджетов на staging.

Обсудить задачу