О web-разработке
и даже немного больше...

Не работает вебвизор, что делать?

«Вебвизор» – это один из инструментов яндекс метрики, который позволяет изучать поведение пользователя на сайте посредством анимирования действий пользователя, на страницах где установлен счетчик. На данный момент времени данная система использует фреймы, с которыми в некоторых случаях могут возникать проблемы. Проблема заключается в следующем: вебвизор перестает работать в метрике, а при попытке просмотра записи поведения пользователя, может появляться ошибка с текстом — «На странице не найден код счетчика или установлен запрет на отображение страницы во фрейме». Чтобы решить эту проблему нужно проделать немного манипуляций, чтобы определить, в чем заключается проблема, а проблема может быть в нескольких местах.

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

Проверяем, нет ли проблем на вашей стороне
Бывает, что проблема может находиться на стороне клиентской части, к примеру, блокироваться дополнениями браузера, антивирусом, и другими программами. Проверяем доступ к metrika.yandex.ru, mc.yandex.ru, *.yandex.net, бывает, что доступ могут прикрывать фаерволы на уровне корпоративной сети, этот момент так же следует учитывать.

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

Как понять, блокирует ли фреймы сервер или нет?
Чтобы узнать есть ли запрет на стороне веб-сервера нам необходимо просмотреть заголовки ответа вашего сайта. Просмотреть заголовки ответа вы можете открыв консоль разработчика в браузере (Ctrl+F12), либо с помощью какого-либо онлайн-сервиса, например этот.

После появления заголовков ответа, нас интересует наличие строки:
X-Frame-Options: SAMEORIGIN

Данная строка обозначает то, что показ во фреймах разрешается только лишь с текущего хоста, а значит, с любых других это сделать нельзя, и вебвизор в этом случае попадает под запрет. Как правило, подобные заголовки отправляет веб-сервер, и нам предстоит сделать небольшое исключение показа во фреймах для яндекс метрики. Большинство веб-серверов работают на Nginx, по этой причине подправим немного настройки для виртуального хоста.

Разрешаем веб-визор в Nginx
Так как Nginx уже отправляет заголовок для всех виртуальных хостов, нам необходимо найти конфигурационный файл, откуда этот заголовок подключается. По умолчанию в системе Linux конфигурационные файлы располагаются в директории /etc/nginx/, и имена файлов оканчиваются на *.conf. Вам предстоит найти файл, в котором и прописываются заголовок, а так же закомментировать его:

# add_header X-Frame-Options SAMEORIGIN;

После этого в настройках виртуального хоста прописать небольшое правило, которое будет запрещать все попытки использования фреймов на сторонних доменах кроме доменного имени *.webvisor.com.

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

Обратите внимание, что в исключение добавляется субдомен, там, где указано yourdomain.com – вы прописываете свой. После внесений изменений в конфигурационный файл, необходимо перезапустить Nginx, чтобы параметры вступили в силу. При использовании других серверов, их так же следует настроить таким образом, чтобы заголовок X-Frame-Options не отправлялся для вебвизора.
Если вы делаете отправку заголовков через скрипты, то вы можете воспользоваться регулярным выражением для проверки:

^https?:\/\/([^\/]+\.)?(yourdomain\.com|webvisor\.com)\/

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

Опубликован: 22.08.2017 г.

См. также:

Преимущества и недостатки веб-серверов Nginx и Apache
Перенаправление с HTTP на HTTPS в Nginx
Тестирование файла конфигурации Nginx
Как отключить журнал запросов в Nginx?
Как включить сжатие GZip в Nginx?
Конвертация htaccess в Nginx
Настройка заголовков Expires в Nginx
Блокирование ботов в Nginx

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Комментарии
  • Загрузка...
Друзья сайта