Выполнение JavaScript во время перенаправления без изменения исходного реферера - PullRequest
0 голосов
/ 21 апреля 2009

Мне нужно проверить, является ли переход по клику действительным, используя некоторые клиентские тесты javascript (например, размеры окна браузера).

Однако я бы хотел, чтобы исходный реферер кликов оставался прежним. Есть ли способ, которым я могу сделать перенаправление, выполнить некоторый javascript, захватить сведения о браузере и затем продолжить переход, сохранив при этом исходное значение реферера?

1 Ответ

0 голосов
/ 21 апреля 2009

Если его нет, просто включите реферер в качестве одной из «подробностей браузера», которую вы захватываете и отправляете обратно с инструкцией по перенаправлению. Реферер, вероятно, не доступен на клиенте автоматически, поэтому он будет работать так:

  1. Клиент отправляет первоначальный запрос, предположительно с включением реферера.
  2. Сервер динамически генерирует страницу тестирования на стороне клиента, включая ссылку в переменную Javascript.
  3. Клиент собирает атрибуты клиента, включая значение реферера, сохраненное на шаге 2.
  4. Клиент отправляет собранные атрибуты на сервер с новым запросом перенаправления.
  5. Сервер записывает параметр referrer где-то, хотя не в журналах HTTP, поскольку заголовок Referer не будет иметь того же значения, что и отправленный запрос Javascript.

Конечно, вы понимаете, что все это не является надежным в любом случае, потому что все зависит от клиента, включая заголовок Referer на шаге 1, и нет никакой гарантии, что произойдет, или если это произойдет, то, что полученное вами значение является точным , Я также подвергаю сомнению целесообразность выполнения проверок на стороне клиента (особенно в отношении чего-то произвольного, например размеров окна), чтобы определить достоверность запроса навигации.

...