Referer (リファラ)
Refererは、HTTPヘッダのフィールドの一つで、ユーザーがどのWebページから遷移してきたのか、そのリンク元のURL情報を示します。Webサイトのアクセス解析などに利用される一方、プライバシーやセキュリティ上の配慮も必要となります。
"id","title","slug","description","content","category","difficulty","tags","relatedTerms","isRecommended","order"
"it-sec-referer-01","Referer(リファラ)","referer","Refererは、HTTPヘッダのフィールドの一つで、ユーザーがどのWebページから遷移してきたのか、そのリンク元のURL情報を示します。Webサイトのアクセス解析などに利用される一方、プライバシーやセキュリティ上の配慮も必要となります。","ユーザーが「どこから来たのか」を示す足跡、それがRefererだ。HTTPリクエストヘッダに含まれる情報の一つで、Webサーバにアクセス元の情報を伝える役割を持つ。ちなみに、本来の英単語は'referrer'だが、最初の仕様策定時のスペルミスがそのまま定着した。笑えない話だ。
Refererとは
- あるWebページAにあるリンクをクリックして、ページBに移動したとする。
- この時、ページBにアクセスするブラウザは、HTTPリクエストヘッダの中に「Referer: (ページAのURL)」という情報を含めて送信する。
- これを受け取ったページBのサーバは、「このユーザーはページAから来たんだな」と知ることができる。
主な用途
- アクセス解析
- サイト管理者は、Refererを見ることで、どのサイトからの流入が多いのか、どの検索エンジンの、どのキーワードで検索された結果、自サイトにたどり着いたのかを知ることができる。マーケティングの基本的な情報源だ。
- アフィリエイト
- どの紹介サイト経由で商品が購入されたかを特定し、紹介料を支払う仕組みにも使われる。
セキュリティ上の問題点
この「足跡」は、時として厄介な問題を引き起こす。
- プライバシーの漏洩
- Refererには、URLのパスやクエリパラメータまで含まれる。もしURL内にセッションIDや個人を特定できるような情報が含まれていた場合、それがリンク先の外部サイトに筒抜けになってしまう。
- CSRF(クロスサイトリクエストフォージェリ)対策での利用
- リクエストが、意図したドメインから送られてきているか(同じサイト内からの遷移か)をRefererでチェックし、外部サイトからの不正なリクエストをブロックする、という対策に利用されることがある。ただし、Refererはユーザー側で偽装も可能であり、これだけに頼るのは脆弱だ。
Refererは便利な情報源だが、同時に機微な情報が漏れる経路にもなりうる。そのため、最近のブラウザではプライバシー保護の観点から、Refererの送信を制御する「Referrer-Policy」という仕組みが導入されている。どのような情報が、どこまで相手に伝わっているのか。常に意識する必要がある。","threats-attacks","intermediate","web,protocol,security,privacy","","false",410