HTTPリファラ (英 : HTTP referer )あるいは単にリファラ は、HTTP ヘッダの1つで、インターネット 上の1つのウェブページ またはリソースから見て、それにリンクしているウェブページやリソースのアドレス[ 1] を指す。リファラを参照することで、どこからそのページに要求が来たのかを知ることができる。リファラをログ することでウェブサイト やウェブサーバ で訪問者がどこから来ているかを把握でき、プロモーションやセキュリティの目的に使うことができる。リファラの活用はクロスサイトリクエストフォージェリ 対策としても一般的だが、リファラが無効化されているとそのようなセキュリティ機構は働かない。リファラは一般に統計的用途に使われている。
デリファラ [ 2] とは、要求を起こすべくクリックされたページを目標ウェブサイトが識別できなくするため、要求から元のページ(サイト)の詳細を除去する手段である。
詳細
あるページにあるリンク をクリックして別のウェブページ を訪れるとき、リファラはそのリンク が置かれているウェブページのURL である。
より一般化すると、リファラはその要求を発生させる原因となったアイテムのURLである。例えば、或るウェブページ内に画像を表示するとき、リファラはそのHTML ページのURLとなる。ウェブブラウザ からウェブサーバへのHTTP要求の仕様上、リファラフィールドはオプションである[ 3] 。
ほとんどのウェブサーバには全トラフィックのログがあり、ブラウザが要求毎に送信したHTTPリファラを記録している。ウェブログ解析ソフトの多くはこの情報を処理できる。リファラ情報はユーザーのプライバシー に関わる場合があるため、リファラ情報を送信しないよう設定できるブラウザもある。プロキシ やファイアウォール ソフトウェアにもリファラ情報をフィルタで除去できるものもあり、外部に公開していないロケーション情報を漏らさないようにできる。このことは問題を発生する要因ともなる。Webサーバはサイトの一部について、正しいリファラを送ってこないブラウザに対してアクセスをブロックしていることがある。これはディープリンク を防いだり、画像の不正使用(直リンク )を防ぐためである。プロキシソフトウェアの中にはそのサイトのトップレベルのアドレスをリファラとして与えるものがあり、ユーザーが最後に訪問したサイトを暴露することなく問題を回避できる。
最近では一部のブログはリファラ情報を公表し、あるブログにリンクしているサイトにブログ側からもリンクすることで会話を広げようとしている[要出典 ] [ 4] 。これを悪用し、スパマーのサイトへのリンクを大量に貼らせるリファラスパム が登場している[ 4] 。
アダルトサイト などの有料サイトの多くはコンテンツを守る目的でリファラ情報を利用している[要出典 ] 。すなわち、ログインしないと参照できないなどの極少数のページからのアクセスのみを許可するのである。これにより、協力関係にあるアダルトサイト間での素材の共有が容易になる。このようなサイトへのフリーなアクセスを実現する手段としてリファラスプーフィング がある。
リファラの隠蔽
ほとんどのウェブサーバには全トラフィックのログがあり、ブラウザが要求毎に送信したHTTPリファラを記録している。このため様々なプライバシーに関わる懸念が生じ、本当のリファラURLを送信しないようにするシステムがいくつも開発された。リファラヘッダを単に空白にするものや違うデータで置き換えるものがある。一般にセキュリティソフトにはリファラデータを空白にするものが多く、ウェブベースのサーバにはURLを偽物(一般にそのサーバ自身のURL)に置き換えるものが多い。当然ながら、これによってリファラスパムの問題が生じる。両者の技術的詳細はほぼ同じである。セキュリティソフトは一種のプロキシ として動作し、HTTP要求を書き換える。ウェブベースの手法ではサーバが別のウェブサイトをロードするため、リファラURLにはそのサーバのアドレスが送られる。ウェブブラウザ には、ユーザーがオプションでリファラ情報送出の切り替えできるものもある[ 5] 。
ウェブサイト がリファラ送信の有無を制御する仕組みとして、リファラーポリシー が実装されつつある[ 6] [ 7] 。
このほか、主要なブラウザでは、Refresh
HTTPヘッダを使うよう設定するとリファラヘッダを送らなくなる手法もある[ 8] 。しかし、W3C ではウェブアクセシビリティ の観点からRefreshの手法を推奨していない[ 9] 。
綴り
本来、参照元という意味の英単語は「referrer 」であるが、HTTPリファラの場合は意図的に「referer 」と綴る場合がある。これは、HTTPが策定された時にヘッダ名を間違ったスペルで書いてしまい、それが今でも使われている、という歴史的経緯のためである。
前述の通り仕様上のヘッダ名は「referer 」であるため、特にHTTPヘッダを直接扱うようなソフトウェアプログラムの場合、「referrer 」と綴ると意図通りに動作しない場合すらある。
脚注
^ 通常はURL だが、より汎用的にはURI や国際化 されたIRI
^ 英 : dereferer
^ 「The Referer[sic] request-header field allows the client to specify […] the address (URI) of the resource from which the Request-URI was obtained […] 」RFC 2616 § 14.36
^ a b "アクセス解析を利用した“悪意”ある宣伝手法「リファラースパム」" - Markezine(2008年8月20日).2023年1月15日閲覧。
^ Network.http.sendRefererHeader
mozillaZine
^ “HTML Standard .5.5 Referrer policy attributes ” (2017年6月22日). 2017年6月23日 閲覧。
^ “HTML Standard 日本語訳 2.5.5 リファラーポリシー属性 ” (2017年6月4日). 2017年6月23日 閲覧。
^ Jones, Matt (2010年5月24日). “Protecting Privacy with Referrers ”. 2018年11月9日 閲覧。
^ 1.1.3 The META element - HTML Techniques for Web Content Accessibility Guidelines 1.0
外部リンク
RFC 2616 : Hypertext Transfer Protocol – HTTP/1.1
IRI – Internationalized Resource Identifiers