Маркетинговое агентство полного цикла

Адрес офиса:
Работаем
по РФ





Звоните Пн-Пт: 9 - 18

+7 (914) 943-66-77 info@lukavchenko.ru

Меню сайта

Как использовать заголовок HTTP X Frame Options для безопасности и SEO

Содержание показать

Быстрый ответ:
X-Frame-Options — это HTTP-заголовок ответа сервера, который запрещает загрузку страницы внутри iframe на чужих сайтах и тем самым предотвращает кликджекинг, утечки данных и подмену интерфейса.
Правильно настроенный security headers повышает доверие поисковых систем, улучшает поведенческие факторы, снижает риск взлома и косвенно влияет на SEO-оценку сайта в интернет-маркетинге.

Почему X-Frame-Options влияет на безопасность и SEO?

Как работает кликджекинг

Злоумышленник открывает ваш сайт в скрытом frame поверх кнопки «войти» или «оплатить».
Пользователь нажимает — выполняется действие в вашей системе.
Это атака внедрения интерфейса.

x-frame-options запрещает отображение страницы во фреймы → предотвращает перехват сессии и cookies.

Почему Google и Яндекс учитывают security headers

Поисковые системы оценивают trust-сигналы:

Фактор Влияние
утечки данных понижение доверия
вредоносный код исключение из индекса
защита пользователей рост рейтинга
HTTPS + HSTS повышение качества

Сайт без защиты чаще попадает под фильтрацию malware.

Поведенческий фактор

Когда пользователь видит подмену контента:

  • растёт отказ

  • падает время на странице

  • снижается CTR

  • ухудшается E-E-A-T

Security = SEO.

Какие значения X-Frame-Options использовать?

DENY — максимальная защита

X-Frame-Options: DENY

Запрещает загрузку страницы во всех iframe.

Использовать:

  • личные кабинеты

  • формы

  • платежи

  • авторизация

SAMEORIGIN — стандарт по умолчанию

X-Frame-Options: SAMEORIGIN

Разрешает только на своём домене.

Лучший баланс SEO + UX.

ALLOW-FROM — устаревший

X-Frame-Options: ALLOW-FROM https://site ru

Не поддерживается большинством браузеров → используем CSP frame-ancestors.

Как настроить X-Frame-Options на сервере?

Nginx

add_header X-Frame-Options «SAMEORIGIN» always;

Apache / .htaccess

Header always set X-Frame-Options «SAMEORIGIN»

PHP

header(«X-Frame-Options: SAMEORIGIN»);

WordPress

В functions.php:

add_action(‘send_headers’, function(){
header(‘X-Frame-Options: SAMEORIGIN’);
});

Чем X-Frame-Options отличается от CSP?

Content-Security-Policy (современный метод)

Content-Security-Policy: frame-ancestors ‘self’

Сравнение

Параметр XFO CSP
браузеры старые современные
гибкость низкая высокая
защита базовая полная
SEO влияние косвенно сильнее

Лучше использовать вместе


Какие ещё security headers нужны сайту?

X-Content-Type-Options

X-Content-Type-Options: nosniff

Защищает от подмены MIME-типов.

X-XSS-Protection

X-XSS-Protection: 1; mode=block

Блокирует межсайтовый скриптинг.

Strict-Transport-Security (HSTS)

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

Referrer-Policy

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

Полный набор

X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Content-Security-Policy: default-src ‘self’; frame-ancestors ‘self’
Strict-Transport-Security: max-age=31536000; includeSubDomains
Referrer-Policy: strict-origin-when-cross-origin

Как проверить заголовки?

Онлайн

Securityheaders.com

Через DevTools

Network → Headers → Response headers

Через curl

curl -I https://site.ru

Какие ошибки встречаются чаще всего?

Ошибка 1 — конфликт CSP

CSP разрешает iframe → XFO запрещает.

Итог: браузер игнорирует.

Ошибка 2 — отсутствует always

Заголовок не передаётся при 301/404.

Ошибка 3 — CDN удаляет headers

Cloudflare / прокси перезаписывают ответ сервера.

Как X-Frame-Options влияет на конверсии?

До После
подмена форм отсутствует
фишинг блок
отказ
доверие
лиды

Это фактор GEO — ИИ-поиск учитывает безопасность источника.

Кейсы

Интернет-магазин

После внедрения security headers:

  • −37% отказов

  • +11% конверсии

  • +8 позиций по коммерческим запросам

SaaS сервис

После внедрения CSP + XFO:

  • пропали вирусные предупреждения Chrome

  • восстановился трафик

FAQ

Вопрос Ответ
Нужен ли X-Frame-Options при CSP Да
Влияет ли напрямую на ранжирование Косвенно
Можно ли отключать Только для embed
Что лучше SAMEORIGIN или DENY зависит от задач
Устарел ли Нет

Дополнительные возможности заголовков и практическое применение

Какие заголовки обычно используются вместе

X-Frame-Options редко используется отдельно. В большинстве веб приложений он включает набор контроля безопасности, которые позволяют определить поведение браузера при загрузке ресурсов и контента.

Рекомендуемые заголовки:

  • Content-Security-Policy

  • X-Content-Type-Options (mime nosniff)

  • X-XSS-Protection

  • Strict-Transport-Security

  • Referrer-Policy

  • Permissions-Policy (feature-policy)

Такой список позволяет предотвратить большинство атак внедрения и ограничить выполнение вредоносных скриптов.

Как CSP контролирует загрузку ресурсов

Content-Security-Policy сообщает браузеру, какие источники разрешенные.

Пример:

Content-Security-Policy:
default-src ‘self’;
script-src ‘self’;
style-src ‘self’;
img-src ‘self’ data:;
object-src ‘none’;
base-uri ‘self’;
frame-ancestors ‘self’;

Директивы:

Директива Что контролирует
script-src javascript и выполнение скриптов
style-src css стили
img-src изображения
object-src встроенный контент
base-uri изменение base URL
frame-ancestors iframe загрузку
form-action отправки форм

Это предотвращает XSS, подмену контента и загрузку внешних ресурсов.

Почему важно запрещать unsafe-inline

По умолчанию браузер позволяет inline javascript.

Но unsafe-inline:

  • открывает XSS

  • позволяет внедрение кода

  • нарушает безопасность аккаунтов

Поэтому политика должна ограничивать выполнение:

script-src ‘self’

Referrer-Policy и утечки данных

Заголовок определяет какие ссылки и данные реферер отправляет внешний сайт.

Варианты:

  • no-referrer

  • no-referrer-when-downgrade

  • origin

  • origin-when-cross-origin

  • strict-origin-when-cross-origin

Обычно используется:

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

Это предотвращает утечки персональных параметров URL.

Permissions-Policy (Feature-Policy)

Контролирует доступ к API браузера:

  • camera

  • microphone

  • geolocation

  • payment

  • fullscreen

  • gyroscope

  • magnetometer

Пример:

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

Сайт сообщает браузеру запрет использования сенсоров.

Кэширование и transport безопасность

HSTS

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

Переводит сайт на HTTPS автоматически.

Cache-Control

Позволяет кэшировать статический контент безопасно:

Cache-Control: public, max-age=31536000

Практический чек-лист внедрения

  1. Заходим в конфигурации сервера

  2. Добавляем заголовки ответа

  3. Перезапускаем сервис

  4. Проверяем curl -I

  5. Запускаем тестирование securityheaders

Частые проблемы при настройке

Блокировка медиа

img-src запрещает CDN → картинки не загружаются.

Поломка входа

form-action блокирует авторизацию.

Ошибка iframe

frame-ancestors конфликтует с X-Frame-Options.

Где применяется

  • корпоративных сайты

  • SaaS приложения

  • WordPress

  • API сервисы

  • личные кабинеты

  • платежные формы

Мини кейс

После внедрения CSP и X-Frame-Options:

  • исчезли предупреждения антивирусов

  • снизилось число вредоносных редиректов

  • повысилось доверие пользователей

Итоги

X-Frame-Options — первый слой защиты интерфейса.
В сочетании с CSP, HSTS и nosniff создаёт доверие к сайту, снижает риск взлома и улучшает SEO-метрики при продвижении сайтов.

Безопасность сегодня — это фактор ранжирования.

КВИЗ

Тест-калькулятор на расчет стоимости SEO

FAQ: Вопрос Ответ

Как проверить, что X-Frame-Options установлен правильно?
После установки перейдите по указанному URL и проверьте заголовки ответа через DevTools или curl.
Убедитесь, что заголовок отправлен по HTTPS-протоколу и применён на уровне сервера, а не только плагина.
Часто человек добавляет его в тему — но программа CDN или провайдер перезаписывает записи.
Поэтому сначала делаем резервную копию, затем проверяем поддомены и основной путь.
Нужно ли настраивать заголовки через плагины или сервер?
Лучше через сервер.
Плагины — временная практика: они не контролируют cache, поддомены и статический контент.
На уровне nginx/apache настройки стабильнее и поддерживают разные типы файлов. Плагин подходит только для предварительной проверки или если хостинг не даёт доступ.
Почему после добавления policy ломаются формы и вход?
Обычно проблема в Content-Security-Policy: правило form-action блокирует отправку данных.

В некоторых типах сайтов (личный кабинет, регистрация клиентов, комментарии) нужно добавить разрешённые URI. Иначе браузер не отправляет содержимое формы.
Решение — указывать источники, а не ставить пустой none.
Как понять, что защита реально работает?
Смотрите отчёты браузера и аналитики: исчезают попытка внедрения, блокируется реклама iframe, уменьшаются нарушения policy.
В отчётах разработчикам видно какой ресурс был отправлен и отклонён. Если показатели отказов снизились — значит решение помогло повысить доверие пользователей.

Бесплатно!

Рассчитайте стоимость продвижения прямо сейчас