Не работает webvisor на битрикс веб-окружении (bitrix-env)

Не работает webvisor на битрикс веб-окружении (bitrix-env)

Базовые настройки Битрикс веб-окружения защищают ваш сайт от различных типов атак, включая clickjacking. Атака путем подмены сайта, и кражи ваших данных (логинов - паролей, данных карт и т.д). За данную настройку отвечает заголовок X-Frame-Options, который передает ваш сервер. Именно из-за этого заголовка и блокируются фреймы вашего сайт, которые используются для вебвизора. Давайте разберемся, что же делать.

В первую очередь необходимо посмотреть настройки самого битрикса, а точнее "проактивную защиту". Идем в админку сайт, по пути Настройки - Проактивная защита - Защита от фреймов. По сути если у вам необходимо отслеживать весь сайт в метрике то или отключайте вовсе эту настройку, или добавьте нужный вам сайт в исключения.

Снимок экрана 2021-10-12 в 21.08.18.png

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

Как видите данный метод, может помочь, но далеко не идеален. При этом он все равно нам понадобится, для решения проблемы, и разрешения фреймов только для определенных сайтов.

Заголовок X-Frame-Options.

Как мы и говори ранее, данный заголовок дает указания браузеру разрешать ли показывать ваш сайт через фрейм или нет. Отсюда у него есть 3 значения:
  • DENY - Запрет на отображение сайта из фрейма (стоит по умолчания в bitrix env)
  • SAMEORIGIN - Разрешает показывать сайт во фрейме
  • ALLOW-FROM domain - Разрешает показывать сайт во фрейме, но только для определенных доменов ( не работает на safari и firefox)

Решение проблемы вебвизора на битрикс -веб окружение

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

  1. Первое что мы делаем это отключаем дефолтный заголовок с запретом отображения для всех. Для этого мы идем по адресу /etc/nginx/bx/conf/general-add_header.conf и комментируем строку 

    #add_header X-Frame-Options SAMEORIGIN;
  2. Идем по адресу /etc/nginx/bx/conf/bitrix_general.conf и в самом низу вставляем код

    set $frame_options '';
    if ($http_referer !~ '^https?:\/\/([^\/]+\.)?(domain\.com|webvisor\.com|metrika\.yandex\.ru)\/'){
       set $frame_options 'SAMEORIGIN';
    }
    add_header X-Frame-Options $frame_options;

    Где domain.com адрес вашего сайте
  3. Перезапускаем nginx

    service nginx restart
    или
    systemctl restart nginx.service

Возврат к списку