リファラーがHTTPSからHTTPに渡される場合があります…方法は?


17

理論的には、ブラウザはリファラー情報をHTTPSからHTTPサイトに渡しません。そして私の経験では、これは常に真実でした。しかし、私はちょうど例外を見つけたので、なぜそれが機能するのかを理解したいと思います。

https://www.google.ca/で「リファラーとは」を検索します。
例:https : //www.google.ca/search ? q=what+is+my+referer

リファラーを表示するサイトがいくつかあります。彼らは、そうすべきではないときにすべて「働く」ように見えます。たとえば、www.whatismyreferer.comをクリックします。私は得る:

 Your referer:
 https://www.google.ca/

まれに、結果として「リファラーなし」が表示されることがあります。戻ってリンクをもう一度クリックすると、次回は「機能」します。

これは起こらないはずです。www.whatismyreferer.comは、非HTTPSサイトです。refererヘッダーは渡されるべきではありませんが、渡されます。

ここで何が起こっていますか?また、HTTPSサイトからリンク先のHTTPサイトに同じことを行うにはどうすればよいですか?


1
WindowsでChromeを使用していることに注意してください。違いがある場合(例:他の人が異なるブラウザ/ OSで異なる結果を見る場合)
-ravisorg

この動作はもはや真実ではありません。
フリム

@ravisorg、これは代わりにS / Oに投稿されるべきではありませんか?
Pacerier

GoogleがHTTPSリンクを返すようになったため、テストは無効になりました:
Silas S. Brown

回答:



4

これは標準の動作です。

https://tools.ietf.org/html/rfc2616#section-15.1.3は言う

参照ページがセキュアなプロトコルで転送された場合、クライアントは(非セキュアな)HTTPリクエストにRefererヘッダーフィールドを含めるべきではありません。

クライアントがそれをしている場合、それは標準に違反しています。

繰り返しになりますが、Googleは標準であり、何でもできます:-)


1
「すべき」とは、オプションの権利を意味しますか?

ええ、私はそう思う、オプションです。
johnshen64

4
オプションであるため、なぜ標準に違反していると言うのですか?
Pacerier 14

1
今では2616は廃止されています。7231セクション5.5.2には、「参照ページが安全なプロトコルで受信された場合、ユーザーエージェントは安全でないHTTP要求でRefererヘッダーフィールドを送信してはならない」と述べています。ただし、セキュリティで保護されたHTTP要求に対してエージェントが行うことを指定していません。
ピーター

1

これは、Googleページのjavascriptが実行していることのようです。noscriptが有効になっているFirefoxでは表示されず、javascriptを無効にするとWindows上のChromeで表示されなくなります。私はそれ以上深く掘り下げていないので、具体的には何がわかりません。


いいえ、JavaScriptに関連するものではありません(そのことを考えて、尋ねる前にチェックアウトしました)。Chromeがフォローしている新しい<meta>タグのようです。
ravisorg

JavaScriptを無効にすると、リファラーがここで動作しなくなります。知りません。ここには複数のことが関係しているかもしれません。
エタンReisner

それは非常に興味深いです-私はそれでさらに実験するつもりです。フィードバックをお寄せいただきありがとうございます!
ravisorg

0

<meta> ラベルの属性名には新しいリファラールールがあります。リファラーは、このドキュメントから送信されたリクエストに添付されたHTTPリファラーHTTPヘッダーのコンテンツを制御します。

詳細については、RFC Referrer Policyをご覧ください。


これは、すでに受け入れられている答えと同じですか?!
DocRoot

-2

リンクをクリックすると、https://www.google ....からhttp://www.google ...にリダイレクトされ、その後www.whatismyreferer.comにリダイレクトされるためです。

そして、あなたが言ったように、httpウェブサイト間でリファラーが送信されます。

Firefox拡張機能で確認できます


2
推測していますか、それとも事実に基づいていますか?私の側でそれが起こっていないので。リンクをクリックすると、google.caの HTTPSリダイレクトに移動してから、エンドドメインに移動します。(たとえば)www.whatismyreferer.comに到達するまで、https以外のURLにアクセスすることはありません。また、リファラーにはhttpではなくhttpS://www.google.caが明記されていることに注意してください。
ravisorg

ええ、この答えは間違っているようです。
ceejayoz

httpヘッダーのダンプは次のとおりです。pastebin.com / Y1HJyJ87 リソースのダウンロード(googleサジェストや他のajaxのようなもの)とCookie関連のデータを削除しました。しかし、私は複数回試したときに、Googleの動作が異なることを認めなければなりません... httpsのみを使用することがあるため、ウェブサイトでリファラーが表示されないことがあります。自分で試してください
user2299634
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.