Каким будет HTTP реферер? - PullRequest
       9

Каким будет HTTP реферер?

4 голосов
/ 05 октября 2009

Каким будет HTTP-реферер в следующих случаях:

  1. Пользователь щелкает ссылку на веб-сайте и попадает на другой веб-сайт, на котором есть горячая ссылка на изображение с 3-го веб-сайта, каким будет реферер на изображении.
  2. Пользователь щелкает ссылку, которая ведет на другой веб-сайт, который использует META Refresh, чтобы отправить их обратно на первый веб-сайт.
  3. Пользователь щелкает ссылку, которая ведет на другой веб-сайт, содержащий фрейм со второй страницей второго сайта, является ли реферал исходным сайтом или вторым сайтом?

Кажется, я не могу найти ответ. Если я не могу получить ответ здесь, я просто создаю страницы и проверяю его.

Ответы [ 5 ]

5 голосов
/ 09 октября 2009

Мне лень пытаться интерпретировать все данные сценарии, но чтобы помочь проверить вещи, можно легко создать скрипт PHP, который возвращает изображение, которое сообщает нам, что такое реферер:

<?php
  header("Content-type: image/png");
  header("Cache-control: no-cache");
  header("Pragma: no-cache");
  header("Expires: -1");

  $s = "Referrer: " . $_SERVER['HTTP_REFERER'];

  $im = @imagecreate(500, 13)
    or die("Cannot Initialize new GD image stream");
  $black = imagecolorallocate($im, 0, 0, 0);
  imagecolortransparent($im, $black);
  $red = imagecolorallocate($im, 255, 0, 0);
  imagestring($im, 3, 0, 0, $s, $red);
  imagepng($im);
  imagedestroy($im);
?>

Если веб-сайт отвечает перенаправлением HTTP, например 302 Moved Temporarily, ваш браузер все равно отправит исходный реферер с перенаправленным запросом:

<?php
  header("Location: http://[..]/referrer-to-img/referrer.php?redirected");
?>

Обращаем ваше внимание, что, например, в Safari на Mac, удерживая нажатой клавишу Command (чтобы открыть ссылку на новой вкладке) и нажимая клавишу Command-Option (в новом окне) do установите для этого реферер ссылка, при выборе «Открыть ссылку в новой вкладке / окне» из контекстного меню (после щелчка правой кнопкой мыши) не .

Счастливого тестирования. ; -)

2 голосов
/ 09 октября 2009

Referer всегда является документом / ресурсом, который ссылается на текущий ресурс . Итак:

  1. URL-адрес документа, в котором изображение имеет горячую ссылку.
  2. В отличие от перенаправлений HTTP, обновление META вызывает браузер для отправки URL-адреса документа, в котором находится обновление META .
  3. Как и изображение, Referer будет URL-адресом документа, содержащего фрейм.
1 голос
/ 05 октября 2009

Во-первых, HTTP Referer может быть чем угодно, что может сделать это различным клиентским программным обеспечением, учитывающим конфиденциальность, или даже на каком-либо шлюзе / прокси по пути.
И все же позвольте мне взять на себя трещину:

1. That of the second web site
2. That of the second web site
3. pretty sure (not certain) but the second site still seems to be the right response.

Какой бы ни была текущая страница в то время, когда браузер отправляет запрос (будь то изображение, перенаправление и т. Д.) [Обычно] отправляется на сервер, лежащий в основе URL-адреса запроса. [снова, если никакое устройство конфиденциальности не меняет это и другие значения HTTP-заголовка]

1 голос
/ 05 октября 2009
  1. Реферер будет третьим сайтом.

    Реферер всегда является хостом HTTP-запроса.

  2. Реферер будет другим веб-сайтом.

    Несмотря на то, что страница использует мета-обновление, она все еще является HTTP-запросом, и применяется предыдущее правило.

  3. Реферал будет вторым сайтом.

    iframe запросы обрабатываются так же, как запросы в новых окнах браузера.

0 голосов
/ 05 октября 2009

Угадай, но я вполне уверен:

  1. Третий веб-сайт будет рассматривать второй сайт в качестве реферера.
  2. Первый сайт видит реферера как второй сайт
  3. Второй сайт.
...