add header x frame options sameorigin

Повышаем уровень безопасности сайта: запрещаем отображать свой сайт в iframe.

Заголовок X-Frame-Options: запрет на отображение страницы во фрейме

От чего защищает?

— от атак типа «кликджекинг» (англ. Clickjacking).

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

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

Google:

Избегайте использования окон iFrame или создавайте отдельные ссылки на их содержание

Содержание, отображаемое с помощью iFrame, не индексируется и не показывается в результатах поиска Google. Использовать окна iFrame для отображения содержания не рекомендуется. Если вы применяете эту технологию, не забудьте добавить дополнительные текстовые ссылки на их содержание, чтобы робот Googlebot мог просканировать его и внести в индекс.

Яндекс:

Использование iframe .

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

Google и Яндекс могут сканировать содержимое iFrame, но при этом такие страницы в индекс попасть могут только в редких случаях.

Одними из методов манипуляций является искажение ПФ, внедрение вирусов и т.п. Если даже проиндексируется такой контент во фрейме на атакующем сайте, то будет эффект как при междоменном дублировании контента.

Примеры внедрения кода

Лучший способ защититься — это установить запрет на отображение страницы во фрейме. Это можно сделать 3 способами.

Файл .htaccess:

Файл nginx.conf (для конфигурации Nginx):

Мета-тег:

Основные правила

  • — Разрешает рендеринг документа, при открытии во фрейме — только с того же домена.
  • — Запрет рендеринг документа внутри фрейма.
  • — Разрешен рендеринг, если внешний документ с указанного домена domain.ru (не поддерживается в Firefox и Safari).

Делаем исключение для Вебвизора Яндекс.Метрики

Если в Вебвизоре Метрики появляется сообщение:

«Не установлен код счетчика или установлен запрет на отображение страницы во фрейме».

В htaccess не прописываем или убираем код. Затем ставим защиту в виде php-скрипта до начала рендеренга страницы:

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

Корректность настройки заголовка можно проверить с помощью этого сервиса: SecurityHeaders.

Обновлено: 23.12.2018 4052 (в день: 10.363)

nginx: [emerg] invalid number of arguments in «add_header» directive in /etc/nginx/bx/site_enabled/bx_ext_*******

Артем, Спасибо за ответ, потерял вопрос этот потом и не смог отписаться. Дополню, может кому поможет.

полезный блог о digital и it

Trofimov Digital

полезный блог о digital и it

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

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

И вообще, если вы не YouTube, то не стоит, без видимой причины разрешать кому попало отображать у себя содержимое вашего сайта.

Не единственный, но рекомендуемый на сегодня способ запрета отображения веб-страницы внутри фрейма — использование заголовка X-Frame-Options, однако и он не идеален и иногда приводит к проблемам, например к некорректной работе Вебвизора в Яндекс.Метрике.

Разбираемся как настроить защиту и что делать если проблемы все таки-возникают.

Что такое X-Frame-Options

Заголовок HTTP ответа от сервера X-Frame-Options служит инструкцией для браузера, он разрешает или запрещает отображение страниц вашего сайта во фрейме. Может иметь три значения:

SAMEORIGIN
Разрешает загрузку страниц сайта во фрейме только если фрейм и страница расположены на одном домене.

DENY
Запрещает загрузку во фрейме.

ALLOW-FROM domain
Разрешает загрузку во фрейме только для указанного домена, не работает для Safari и Firefox.

Защита от фреймов в 1С-Битрикс

В 1С-Битрикс ограничение работы во фрейме включается на странице «Защита от фреймов» (Настройки — Проактивная защита — Защита от фреймов).

На вкладке «Исключения», можно указать страницы сайта, для которых ограничения не будут применяться. Также добавить свою страницу в исключения можно определив константу B_SECURITY_FRAME в значение false, до подключения ядра.

Важно! Чтобы данный функционал 1С-Битрикс корректно работал, заголовок X-Frame-Options на сервере должен быть установлен в значение SAMEORIGIN (как это сделать, читайте далее). Если заголовок отсутствует или установлен в значение отличное от рекомендуемого, «Сканер безопасности» 1С-Битрикс расценит это как потенциальную угрозу сайту и будет показывать соответствующее предупреждение в своём журнале.

Как настроить X-Frame-Options на Nginx

1. Найти секцию server, отвечающую за обработку запросов нужного сайта. Как правило это файлы в /etc/nginx/site-enabled/*.conf

Для версий Bitrix VM ниже 7.0 и чистого nginx скорее всего это будет файл /etc/nginx/nginx.conf или etc/nginx/bx/conf/bitrix.conf

Для Bitrix VM 7.0 и выше заголовок вынесен в отдельный файл /etc/nginx/bx/conf/http-add_header.conf

2. В секцию server нужного сайта добавить или закомментировать строку в зависимости от того хотите вы включить использование заголовка или выключить:

3. Перезапустить nginx

Как настроить X-Frame-Options на Apache

1. Найти конфигурационный файл для вашего сайта, зачастую это файлы /etc/apache2/httpd.conf, /etc/apache2/vhost.d/*.conf

2. Добавить или закомментировать строки в зависимости от того хотите вы включить использование заголовка или выключить:

3. Перезапустить Apache

Либо внести эти же инструкции в файл .htaccess, при этом перезапуск сервера не требуется.

Решение проблем

Если вы используете сервисы, которым необходимо открытие вашего сайта во фрейме то ограничение работы во фрейме скорее всего приведёт к тому, что эти сервисы перестанут работать или будут работать некорректно.

Самой известной проблемой является некорректная работа Вебвизора от Яндекс. Данные собираются валидно, но при попытке просмотреть запись посещения возникает ошибка: «Невозможно воспроизвести посещение на данной странице. Возможные причины: Не установлен код счётчика или установлен запрет на отображение страницы во фрейме.»

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

Для решения проблемы вам придётся сделать выбор: либо сервис (в данном случае вебвизор), либо безопасность, других вариантов пока к сожалению не существует.

Оцените статью