web-dev-qa-db-ja.com

<iframe>でリンクがクリックされた場合のHTTPリファラーとは何ですか?

http://www.website.com<iframe>が含まれているWebページがあるとします。このような:

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

ここで、誰かがwww.website.comにアクセスし、iframe自体のリンクをクリックするとします(このリンクはwww.washington.edu Webサイトにあります)。

私の質問は、この場合のHTTPリファラーとは何ですか?

それは http://www.website.com (iframeをホストしているページ)ですか、それとも http://www.washington.ed (リンクが含まれているページ)ですかクリックされました)?

22
bodacydo

ブラウザによって異なります。

FirefoxとSafariはリファラーを http://www.website.com として報告しますが、Internet Explorerの一部のバージョンは http://www.washington.ed として表示します。リファラー。

更新2015-04:上記の最新バージョンをテストすると、すべてが返されます http://www.washington.ed

16
muskratt

現在のブラウザ

2015年8月の時点で、すべての主要なブラウザ(Safari、Chrome、Firefox)shouldReferer HTTPヘッダーを http ://www.washington.ed この場合。


しかしアプリケーションがReferer値に大きく依存している場合、特定のブラウザーのバージョンが特定の場合にどのように動作するかをテストすることをお勧めします。

これを書いたのは、たとえば、Safari8が現在iframeに読み込まれたJavaScriptに対して誤ったRefererでリクエストを行っていることがわかったためです。おそらく、このJavaScriptが以前に別のRefererでリクエストされた場合です。これは、2014年にのみChromiumでクローズされた この特定の1つ に似たバグです。(私はすでにAppleに報告しています。)

古いブラウザ

歴史的に Internet Explorer 6は上記とは異なる動作を示しました -Referer HTTPヘッダーを http://www.website.com に設定します。

7
Greg Dubicki