Относительно недавно при включенной защите от показов во фрейме перестали работать карты кликов, вебвизор и т.п. из-за наличия заголовка "X-frame-options:Sameorigin".
Это объяснилось новой схемой работы Яндекс.Метрики, вот ссылка на статью в блоге, где они объясняют, как это исправить - http://metrika-blog.ya.ru/415
Собственно, сам вопрос - возможно ли добиться того же самого (проверка реферера), не трогая настройки nginx?
Код на php, составленный по аналогии коду в статье, не работает (все манипуляции проводятся в файле /bitrix/modules/security/classes/general/frame.php):
Игорь Мосин написал: Относительно недавно при включенной защите от показов во фрейме перестали работать карты кликов, вебвизор и т.п. из-за наличия заголовка "X-frame-options:Sameorigin".
Игорь Мосин написал: Относительно недавно при включенной защите от показов во фрейме перестали работать карты кликов, вебвизор и т.п. из-за наличия заголовка "X-frame-options:Sameorigin".
там же можно белый список адресов настроить
Насколько я понимаю список исключений должен содержать только внутренние адреса, например, *contacts/*
set $frame_options '';
if ($http_referer !~ '^https?:\/\/([^\/]+\.)?(<site>\.<name>|webvisor\.com|metri[ck]a\.yandex\.(com|ru|by|com\.tr))\/') {
set $frame_options 'SAMEORIGIN';
}
add_header X-Frame-Options $frame_options;
Значит просто кладем это в /etc/nginx/bx/site_settings/<site.name>/x-frame-options.conf и всё.
В примере выше, если упороться, то например страница http : / /xyz.xyz/webvisor.com/zxc.php сможет внедрить фрейм с сайта с таким конфигом
Ставим точку в этом вопросе. На основе всех решений выше опытным путем получил верное. Работает и с yandex.ru и c webvisor.com. Работает для всех страниц вашего сайта, а не только для главной. Проверено на Bitrix VM 7.5.4
Шаг 1. По сути описан в яндексе. Создаем в паке /etc/nginx/bx/site_settings/имя сайта файл "x-frame-options.conf", чтобы при обновлении этот конфиг не затерся. Тупо копируем в файл этот код:
Код
set $frame_options '';
if ($http_referer !~ '^https?:\/\/([^\/]+\.)?(<site>\.<name>|webvisor\.com|metri[ck]a\.yandex\.(com|ru|by|com\.tr))\/') {
set $frame_options 'SAMEORIGIN';
}
add_header X-Frame-Options $frame_options;
Шаг 2. Он в яндексе не описан, на нем и затык. Отключаем старую опцию. В файле /etc/nginx/bx/conf/general-add_header.conf нужно закомментировать строку "add_header X-Frame-Options SAMEORIGIN;"