Битрикс, защита от фреймов и Яндекс Метрика: как не ломать Вебвизор
Зачем запрещают страницу во фрейме
В «Проактивной защите» включение против встраивания заставляет ядро отдавать браузеру сигнал вроде X-Frame-Options: страница не должна показываться внутри чужого iframe. Так снимают классический clickjacking: злоумышленник не подсовывает прозрачный фрейм с вашей админкой поверх своей страницы и не провоцирует клики «от имени» администратора.
Почему это мешает Метрике
У счётчика есть инструменты, где страница реально подгружается в iframe (Вебвизор, карта кликов и тому подобное). Если для всех запросов действует общий запрет на фрейм, в интерфейсе Метрики появится подсказка про «запрет на отображение во фрейме», хотя сам код счётчика установлен правильно.
Точечное ослабление через константу
Достаточно рано в загрузке (типично /local/php_interface/init.php или общий аналог в /bitrix/php_interface/) можно определить BX_SECURITY_SKIP_FRAMECHECK как истину — ядро тогда не навесит ограничение для текущего запроса. Делать это «для всех» не стоит: пропадает смысл anti-frame.
Разумнее смотреть на HTTP_REFERER и открывать исключение только если хост пришёл из зоны Метрики/Вебвизора либо совпадает с вашим HTTP_HOST — последнее нужно, когда в интерфейсе запускают «Взаимодействие с сайтом» и браузер уходит со страницы аналитики обратно на ваш домен.
if (isset($_SERVER['HTTP_REFERER'])) {
$trustedFrameHosts = [
'webvisor.com',
'metrika.yandex',
'metrika.yandex.ru',
'metrika.yandex.ua',
'metrika.yandex.com',
'metrika.yandex.by',
'metrika.yandex.kz',
$_SERVER['HTTP_HOST'],
];
$referrerHost = parse_url((string) $_SERVER['HTTP_REFERER'], PHP_URL_HOST);
if ($referrerHost !== null && in_array($referrerHost, $trustedFrameHosts, true)) {
define('BX_SECURITY_SKIP_FRAMECHECK', true);
}
}После выкладки проверьте Вебвизор и воспроизведение записей на живом счётчике.
Компромиссы
Заголовок реферера контролирует клиент; для строгости можно дополнительно смотреть на политики CSP (frame-ancestors) и выдавать узкий список доверенных источников встраивания. Для типичной связки Битрикс + Метрика белый список доменов аналитики — практичный баланс.
Итог
Оставляйте анти‑фрейм включённым, а для сеансов, пришедших из Метрики или с переходами внутри вашего сайта из отчёта, временно опускайте проверку — защита от произвольного встраивания сохранится, отчёты перестанут падать на запрете iframe.
Не хотите копаться сами?
Починю за 1-3 дня. Без предоплаты — оплата по результату.
15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии