Что такое HTTP Referer, если ссылка нажата в <iframe>? - PullRequest
20 голосов
/ 12 декабря 2011

Предположим, у меня есть веб-страница, расположенная по адресу http://www.website.com с <iframe>.Например:

<html>
 <head>...</head>
 <body>
  ...
  <iframe src="http://www.washington.edu">
  ...
 </body>
</html>

Теперь предположим, что кто-то заходит на www.website.com и щелкает ссылку в самом iframe (эта ссылка находится на веб-сайте www.washington.edu).

У меня вопрос, что такое HTTP Referer в этом случае?

Это http://www.website.com (страница, на которой размещен iframe) или http://www.washington.edu (страница, на которой была нажата ссылка)

Ответы [ 2 ]

15 голосов
/ 14 декабря 2011

Это зависит от браузера.

Firefox и Safari сообщат о реферере как http://www.website.com, в то время как некоторые версии Internet Explorer будут показывать http://www.washington.edu в качестве реферера.

ОБНОВЛЕНИЕ 2015-04: при тестировании последних версий выше, все они вернутся http://www.washington.edu

7 голосов
/ 21 августа 2015

Текущие браузеры

По состоянию на август 2015 года все основные браузеры (Safari, Chrome, Firefox) должны установить заголовок Referer HTTP в этом случае http://www.washington.edu.

Но Я рекомендую вам проверить, как ведут себя конкретные версии браузеров в конкретных случаях, если ваше приложение сильно зависит от значения Referer.

Я пишу это, потому что, например, яобнаружили, что Safari 8 в настоящее время делает запросы с некорректным Referer для JavaScript, загруженного в iframes, возможно, если этот JavaScript ранее запрашивался с другим Referer.Эта ошибка похожа на эту конкретную , которая была закрыта в Chromium только в 2014 году (кстати, я уже сообщал об этом Apple).

Старые браузеры

Исторически Internet Explorer 6 показал поведение, отличное от описанного выше - он установил бы заголовок Referer HTTP на http://www.website.com.

...