【入門編】HTTP/1.1のRefererヘッダーとプライバシーリスク – HTTPプロトコル・通信規格実践ガイド

はい、承知いたしました!HTTP/1.1のRefererヘッダーとプライバシーリスクについて、インフラやネットワークの初心者の方にも分かりやすく、かつ実践的な情報をお届けできるよう、親しみやすいブログ記事を作成します。パケットの旅を郵便配達に例え、現場の知見を交えながら、丁寧に紐解いていきましょう!

—

Webサイトを渡り歩く「あの情報」の正体と、こっそり隠す方法 ~HTTP/1.1のRefererヘッダーとプライバシー~

皆さん、こんにちは!Webの広大な世界を日々駆け巡るネットワークの旅へようこそ。今日は、皆さんが普段何気なくクリックしているリンクの裏側で、実はひっそりとやり取りされている、ちょっと面白いけど、プライバシーに関わるお話をお届けします。

突然ですが、あなたは「どこから来たの?」と聞かれたら、どう答えますか?

Webサイトを見ている時、私たちは無意識のうちに色々なページを渡り歩いていますよね。例えば、あるブログ記事で紹介されていた商品が気になって、その商品ページへクリック。さらに、その商品のレビューサイトへ…というように、まるで迷路のようにWebの世界を探索していきます。

この時、あなたが「今いるページ」にたどり着くまでに、「どこから来たのか」という情報が、実はWebサイト側に伝えられているのをご存知でしたか?

郵便配達員さんもビックリ!?「Referer」ヘッダーの正体

この「どこから来たか」という情報を運んでくれるのが、今回のお話の主役、HTTPの「Referer」ヘッダーなんです。

「え、Referer?スペルが違うのでは?」と思ったあなた、鋭い!実は、HTTPの仕様上、この「Referer」は「Referrer」と、Rが一つ多いスペルで書かれるのが正しいんです。これは、歴史的な経緯でそうなってしまった、ちょっとした「お茶目なミス」なんですよ。でも、Webの世界ではこれが正式名称。面白いですよね!

さて、このRefererヘッダー、一体どんな仕組みで動いているのでしょうか?

皆さんが普段使っている「郵便配達」に例えてみましょう。

1. あなたが手紙(Webページ)を出す(クリックする)
あなたが、あるWebサイト(例えば、友達のブログ)を見ていて、「この紹介されている商品、気になる!」と思って、その商品のオンラインストアへのリンクをクリックしたとします。

2. 配達員さん(ブラウザ)が、宛先(商品ストア)へ荷物(リクエスト)を運ぶ
あなたの代わりに、あなたのパソコンやスマートフォンの中にある「ブラウザ」(ChromeやSafariなど)という配達員さんが、商品のオンラインストア(宛先)へ「この商品を見たい!」というリクエスト(荷物)を運びます。

3. 「おや?この荷物はどこから来たんだっけ?」と配達員さんがメモする
ここがRefererヘッダーの出番です!ブラウザは、あなたが「どのWebサイト(友達のブログ)から、この商品のストアのリンクをクリックしたのか」という情報(つまり、友達のブログのURL)を、リクエストの荷物の中にそっとメモしておきます。

4. 宛先(商品ストア)は、メモを見て「ああ、○○さん(友達のブログ)からのお客様だな」と分かる
商品のオンラインストアは、届いた荷物(リクエスト)に付いているメモ(Refererヘッダー)を見て、「あ、このお客様は、○○さんのブログ経由で来てくれたんだな」と、あなたがどこから来たのかを知ることができます。

このように、Refererヘッダーは、Webサイトが「どんな経由で訪問者が来るか」を知るための、とっても便利な情報源となっているんです。例えば、

  • 「このブログ記事から、うちの商品ページへのアクセスが多いな。よし、この記事をもっと宣伝しよう!」
  • 「SNSのリンクから、こんなにたくさんのお客さんが来てくれたんだ!」

といった分析に役立てることができます。

「どこから来たか」が、実はプライバシーの窓に?

さて、このRefererヘッダー、便利な反面、ちょっとしたプライバシーのリスクもはらんでいます。

もしあなたが、「ちょっと秘密にしたい情報」を見ているページ(例えば、健康に関する情報サイトの特定のページや、個人の日記のようなページ)から、別のサイトへリンクをクリックしたと想像してみてください。

その時、Refererヘッダーには、あなたが「秘密にしたい情報を見ているページ」のURLが、そのまま伝えられてしまうのです。

これは、あたかもあなたが「○○さん(友達のブログ)からの紹介で来ました」と、自宅の玄関で配達員さんに名乗るだけでなく、「実は、△△さんの秘密の日記を見ていたんですが、そこから来ました」と、「今見ていた秘密のページ」まで伝えてしまうようなものです。

これでは、訪問先のWebサイトは、あなたがどんなプライベートな情報を見ているページから来たのかまで知れてしまうことになります。これは、ちょっと心配ですよね。

プライバシーを守るための「Referrer-Policy」という盾

そこで、Webの世界では、このRefererヘッダーが伝える情報の範囲を、もっと細かくコントロールできるようにするための仕組みが導入されました。それが、「Referrer-Policy」というものです。

これは、Webサイトの管理者さんが「どこまでRefererヘッダーの情報を伝えるか」を設定できる、いわば「プライバシー設定の盾」のようなものです。

Referrer-Policyには、いくつか種類があるのですが、代表的なものをいくつか見てみましょう。

1. `no-referrer`:一切伝えない!究極のプライバシー保護

これは、「Refererヘッダーなんて、一切送りません!」という設定です。あなたがどこから来たのか、訪問先のサイトは一切知ることができません。

【どんな時に使う?】
機密性の高い情報(個人情報、医療情報など)を扱っているページや、ユーザーのプライバシーを最優先したい場合に設定します。

【設定例】
WebサイトのHTMLの``タグの中に、このように記述します。

2. `origin`:ドメイン名だけを伝える(安全で一般的)

これは、「どのWebサイトから来たか」という情報のうち、「ドメイン名」(例:`example.com`)だけを伝える設定です。具体的なページURLまでは伝えないので、プライバシーを守りつつ、どのサイトからの流入かを把握するのに役立ちます。

【どんな時に使う?】
ほとんどのWebサイトで、プライバシーと分析のバランスを取るために推奨される設定です。

【設定例】
HTMLの``タグにこのように記述します。

3. `strict-origin-when-cross-origin`:安全な通信時のみ、ドメイン名を伝える

これは、少し複雑ですが、安全な通信(HTTPSからHTTPSへの遷移)の時だけ、ドメイン名を伝えます。それ以外の通信(例えば、HTTPSからHTTPへの遷移など、安全ではない通信)の時には、Refererヘッダーを送信しません。

【どんな時に使う?】
HTTPS通信を基本とする現代では、この設定がデフォルトで採用されることも多く、安全性を重視しつつ、ある程度の流入元分析を可能にします。

【設定例】
HTMLの``タグにこのように記述します。

4. `unsafe-url`:全部伝えます!(注意!)

これは、Refererヘッダーの情報を「すべて」送ってしまう設定です。もしあなたが、機密性の高いページから、この設定がされているサイトへリンクをクリックすると、その機密性の高いページのURLまで、すべて送られてしまいます!

【どんな時に使う?】
基本的には、使用すべきではありません。どうしても必要な場合以外は、避けるべき設定です。

【設定例】
HTMLの``タグにこのように記述します。

実際のWebサイトではどうなっているの?

皆さんが普段見ているWebサイトのほとんどは、これらのReferrer-Policyの設定を、HTMLの``タグの中に記述しています。

例えば、あなたがGoogleで何かを検索して、あるサイトにアクセスしたとします。この時、GoogleからそのサイトへのRefererヘッダーには、通常、「Googleで検索したキーワード」という情報が付いてくることがあります。

しかし、もしそのサイトが`no-referrer`や`origin`といったReferrer-Policyを設定していると、検索キーワードまでは伝わらず、「Googleから来た」ということだけが分かったり、あるいは全く情報が伝わらなかったりするのです。

まとめ:Refererヘッダーと、賢く付き合うために

今日は、Webサイトを渡り歩く際に、あなたの「どこから来たか」という情報を運ぶRefererヘッダーと、それにまつわるプライバシーリスク、そしてそれを守るためのReferrer-Policyについてお話ししました。

  • Refererヘッダーは、Webサイトが訪問者の流入元を知るための便利な機能。
  • しかし、プライベートなページからの遷移情報が意図せず伝わるリスクがある。
  • Referrer-Policyを設定することで、どこまで情報を伝えるかをコントロールできる。
  • `no-referrer`や`origin`といった設定で、プライバシーを守りつつ、Webサイトの運営に役立てることができる。

皆さんも、もしWebサイトを開発する機会があれば、ぜひReferrer-Policyの設定を検討してみてください。ユーザーのプライバシーを尊重することは、信頼されるWebサイト作りの第一歩です。

これからも、Webの奥深い世界を、一つずつ紐解いていきましょう!次回の記事もお楽しみに!

コメント

タイトルとURLをコピーしました