Ревиизор.рф
Войти
← Все статьи
Техника21 апреля 2026 · 7 мин чтения

HTTP-заголовки безопасности: что это и при чём тут 152-ФЗ

Команда Ревиизора
Команда Ревиизора
Редакция
Техника

HSTS, CSP, X-Frame-Options и ещё семь заголовков, защищающих сайт и данные пользователей. Связь со ст. 19 152-ФЗ и что прописать в настройках сервера.

Когда юристы говорят «меры защиты персональных данных» по ст. 19 152-ФЗ, большинство представляют сертифицированные средства защиты, журналы аудита и политику парольной безопасности. А HTTP-заголовки безопасности — это тот же самый слой защиты, только со стороны браузера: они не дают украсть сессию пользователя, подменить содержимое страницы или встроить ваш сайт в фишинговый iframe.

Причём тут 152-ФЗ

Прямой нормы «обязаны настраивать HSTS» в 152-ФЗ нет. Но есть:

  • ст. 19 ч. 1 — оператор обязан принимать правовые, организационные и технические меры для защиты ПДн от неправомерного доступа, уничтожения, изменения, блокирования, копирования и распространения;
  • Приказ ФСТЭК № 21 — определяет перечень мер защиты для информационных систем персональных данных. В нём прямо упоминаются защита каналов передачи и защита от XSS/CSRF-атак.

Отдельного штрафа «за отсутствие CSP» в КоАП нет. Но в случае утечки регулятор будет оценивать, принял ли оператор разумные и достаточные технические меры. Отсутствие базовых HTTP-заголовков в 2026 году — это уже аргумент для РКН в пользу того, что меры были недостаточными, а значит, к штрафу по ч. 1 ст. 13.11 (до 100 000 ₽) может добавиться квалифицирующий признак «по неосторожности» по ч. 7 (до 500 000 ₽).

Десять заголовков, которые мы проверяем

HSTS (Strict-Transport-Security)

Заставляет браузер всегда ходить на сайт по HTTPS, даже если пользователь вручную ввёл http://. Защищает от downgrade-атак и MITM на публичных Wi-Fi.

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

Content-Security-Policy

Ограничивает, откуда браузер может загружать скрипты, стили и картинки. Это единственный способ реально защититься от XSS: даже если атакующий внедрит <script>, браузер откажется его выполнить.

Content-Security-Policy: default-src 'self'; script-src 'self' https://mc.yandex.ru; ...

Настройка CSP — самая сложная, но и самая ценная: по нашей статистике, это заголовок, который чаще всего отсутствует именно на сайтах, работающих с ПДн.

X-Frame-Options

Запрещает встраивать ваш сайт в iframe на стороннем домене. Защищает от clickjacking — когда пользователь думает, что кликает на безобидную кнопку, а на самом деле подтверждает действие на вашем сайте.

X-Frame-Options: SAMEORIGIN

X-Content-Type-Options

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

X-Content-Type-Options: nosniff

Referrer-Policy

Контролирует, какую информацию о предыдущей странице браузер отправляет сторонним сайтам. Без этого заголовка URL с токенами авторизации или ID пользователя может утечь в логи рекламной сети.

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

Permissions-Policy

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

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

X-XSS-Protection

Устаревший, но всё ещё полезный заголовок для старых браузеров. Современные (Chrome 78+, Firefox) на него не реагируют — они полагаются на CSP. Но для совместимости держать стоит.

X-XSS-Protection: 1; mode=block

Cross-Origin-Opener-Policy

Изолирует ваш сайт от других вкладок. Защищает от side-channel атак вроде Spectre и от перехвата window.opener.

Cross-Origin-Opener-Policy: same-origin

Cross-Origin-Resource-Policy

Запрещает сторонним сайтам загружать ваши ресурсы (скрипты, картинки, JSON) через <img> или <script> как часть side-channel атаки.

Cross-Origin-Resource-Policy: same-origin

X-Permitted-Cross-Domain-Policies

Легаси из эпохи Flash, но до сих пор проверяется автоматическими сканерами. Установка none — это +1 очко безопасности, ничего не ломает.

X-Permitted-Cross-Domain-Policies: none

Как это связано со штрафами на практике

Сценарий, по которому чаще всего разворачивается история:

  1. У оператора происходит утечка — украли сессию через XSS, подменили форму через clickjacking, перехватили токен через утёкший referrer.
  2. РКН проводит проверку, в том числе запрашивает заключение о принятых мерах защиты.
  3. Эксперт смотрит заголовки — их нет. Делает вывод: «базовые общеизвестные технические меры по защите канала не реализованы».
  4. Штраф назначается не только по ч. 1 ст. 13.11 (непринятие мер — до 100 000 ₽), но и с учётом квалифицирующих признаков по ст. 13.11 ч. 7–10 (до 18 миллионов при утечке от 10 000 субъектов).

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

Как настроить на российском хостинге

Большинство сайтов в РФ живут на связке Nginx + Bitrix/1С-Битрикс или Nginx перед PHP/Node в Yandex Cloud, VK Cloud, Selectel, Reg.ru, Timeweb, Beget. Разбираем типовые варианты.

Nginx

Самый частый случай. Добавьте в блок server {} или location /:

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 Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Cross-Origin-Opener-Policy "same-origin" always;
add_header Cross-Origin-Resource-Policy "same-origin" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
# CSP — подбирайте под свой сайт, начните с Report-Only
add_header Content-Security-Policy-Report-Only "default-src 'self'; script-src 'self' https://mc.yandex.ru;" always;

Флаг always обязателен: без него Nginx не отдаёт заголовки на ответах с кодами 4xx/5xx, а именно на них XSS чаще всего и срабатывает.

Apache / .htaccess

Для сайтов на shared-хостингах (Reg.ru, Beget, Timeweb) часто нет доступа к основному конфигу — работайте через .htaccess:

<IfModule mod_headers.c>
  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"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
  Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
</IfModule>

Проверьте, что модуль mod_headers включён — у большинства российских хостеров он активен по умолчанию.

1С-Битрикс

В Битриксе заголовки проще всего добавить через .htaccess (если используется Apache) или через настройки Nginx у хостера. Если хостинг не даёт править конфиг — попросите техподдержку выставить заголовки на уровне сервера. Для shared-тарифов Битрикс24 настройка недоступна — это одна из причин переезжать на VPS при серьёзной обработке ПДн.

Yandex Cloud Application Load Balancer

В Yandex Cloud заголовки настраиваются на уровне backend-group в ALB через раздел HTTP-бэкенды → Изменение ответа → Заголовки. Это даёт единую точку настройки для всех микросервисов без изменения кода приложения.

VK Cloud / Selectel

Оба провайдера предоставляют managed Nginx с возможностью править конфиг. На выделенных серверах Selectel настройка — штатный Nginx, на managed-решениях — запрос в поддержку или панель управления.

Облачные CDN (Ngenix, DDoS-Guard, Qrator)

Российские CDN добавляют заголовки через панель управления правилами. Если CDN стоит перед вашим сервером — настраивайте заголовки там, а не на origin: иначе CDN может их срезать или переопределить.

Что не работать не будет

Российские сайты часто грузят Яндекс.Метрику, VK Pixel, виджеты Mail.ru, карты Яндекса и 2ГИС. Если выставить слишком строгий CSP без белого списка, они перестанут работать — и вы потеряете не только аналитику, но и потенциально форму согласия на cookies (если она зависит от внешнего скрипта). Поэтому CSP обязательно тестируйте неделю в Report-Only режиме и только потом включайте enforcing.

Пример совместимого с российским стеком CSP:

default-src 'self';
script-src 'self' 'unsafe-inline' https://mc.yandex.ru https://vk.com https://api-maps.yandex.ru;
img-src 'self' data: https://mc.yandex.ru https://vk.com;
connect-src 'self' https://mc.yandex.ru https://api.vk.com;
frame-src https://vk.com https://www.youtube.com;
style-src 'self' 'unsafe-inline';

Чеклист перед деплоем

  • Настроены все 10 заголовков из списка выше
  • CSP проверен в Report-Only режиме минимум неделю перед переключением в enforcing
  • HSTS с includeSubDomains включается только когда все поддомены на HTTPS
  • Permissions-Policy пуст или максимально ограничен — включайте API точечно
  • Заголовки возвращаются и на HTML-страницах, и на API-эндпоинтах, в том числе на 4xx/5xx (always в Nginx)
  • Проверена работа Яндекс.Метрики, VK Pixel и прочих российских сервисов после включения CSP

Быструю оценку дают внешние сканеры — например, securityheaders.com, — но для ПДн-ориентированной проверки лучше использовать отечественные инструменты: базовый аудит по 152-ФЗ (reviizor.ru) проверит все 10 заголовков и свяжет результат с составом ч. 1 ст. 13.11.

Проверьте свой сайт
Ревиизор находит нарушения автоматически и показывает точные статьи КоАП и возможные суммы штрафов
⚡ Проверить сайт
#Безопасность#152-ФЗ#Технические меры

Читайте также

Практика
11 мая 2026 · 8 мин

Трансграничная передача персональных данных: что изменилось в 2026 году

Передача ПДн за рубеж без уведомления РКН — до 18 млн ₽ для юрлиц и уголовная ответственность по ст. 272.1 УК. Что помен

152-ФЗРоскомнадзор
Aa
Практика
29 апреля 2026 · 9 мин

Как убрать Google Fonts с сайта и закрыть нарушение 152-ФЗ

Google Fonts передаёт IP-адреса пользователей в США — это нарушение 152-ФЗ. Инструкция по self-host шрифтов на WordPress

152-ФЗGoogle Fonts
§
Гайд
14 апреля 2026 · 12 мин

Политика конфиденциальности для сайта: чек-лист из 18 пунктов [2026]

Образец политики конфиденциальности для сайта по 152-ФЗ. Чек-лист из 18 пунктов ст. 18.1 с примерами формулировок и типо

ПолитикаГайд