Подтвердить что ты не робот

Что такое HTTP Referer, если ссылка нажата в <iframe>?

Предположим, что у меня есть веб-страница, расположенная в 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 ( страница, на которую была нажата ссылка)?

4b9b3361

Ответ 1

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

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

UPDATE 2015-04: тестирование последних версий вышеупомянутых, все они вернут http://www.washington.edu

Ответ 2

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

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


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

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

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

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