Google Analytics не регистрирует мое приложение как источник трафика на другие сайты

Я работаю над приложением, которое по сути является агрегатором ссылок на другие сайты. Однако вместо прямых ссылок на веб-сайты ссылки в моем приложении указывают на конечную точку в моем приложении — /redirect/:uuid, которая, в свою очередь, выполняет перенаправление 301 на соответствующие сайты:

  1. Пользователь посещает мое приложение -- https://www.myapp.com
  2. Пользователь нажимает ссылку https://www.myapp.com/redirect/123.
  3. Это приводит к перенаправлению 301 на http(s)://external-site.com/?ref=myapp.

Проблема, с которой я сталкиваюсь, заключается в том, что по какой-то причине аналитика Google (работающая на external-site.com) не приписывает трафик, который мое приложение отправляет на внешний сайт, моему приложению. Он просто помечает это как прямой трафик.

Мое приложение — это приложение Rails, размещенное на Heroku. Чтобы сделать перенаправление, я делаю redirect_to "http://external-site.com/?ref=myapp", status: :moved_permanently

Я заметил, что если просто указать в браузере https://www.myapp.com/redirect/123 а затем получите перенаправление 301 на http://external-site.com/?ref=myapp document.referrer пусто. Что мне показалось странным. Разве браузер не должен по-прежнему отправлять заголовок HTTP Referer в случае перенаправления 301?

Был бы признателен за помощь.


person Anthony Silva    schedule 08.06.2015    source источник


Ответы (1)


RFC не определяет поведение заголовка Referrer после 301, однако ваша проблема связана с протоколами, вы перенаправляетесь с безопасного соединения HTTPS. Браузер не будет отправлять реферер, потому что это может повредить безопасности клиента, раскрывая информацию о предыдущем запросе. Простым решением будет использование utm параметров https://support.google.com/analytics/answer/1033867?hl=en

person bukk530    schedule 08.06.2015
comment
Итак, если он перенаправляет на другую страницу, доступ к которой будет осуществляться через HTTPS, тогда он должен правильно отправлять заголовок реферера? Кроме того, мне любопытно понять, каковы проблемы безопасности для такого поведения. Каков пример «атаки», которая будет использовать это (имеется в виду отправка заголовка HTTP-реферера) - person Anthony Silva; 08.06.2015
comment
Не уверен в этом, но я не думаю, что они все равно будут отправлены. Подумайте об этом, SSL предназначен для защиты связи между клиентом и сервером, поэтому мне нужно быть уверенным, что любые данные, которыми я обмениваюсь с сервером, не будут прочитаны кем-либо еще. Отправка реферера третьей стороне раскроет мой последний запрос, многие старые сайты по-прежнему отправляют токены сеанса в качестве параметров GET, поисковых запросов или любых конфиденциальных данных. - person bukk530; 08.06.2015