このウェブサイトはご利用の端末での閲覧に対応していません。
This website does not support your device.

リファラーポリシー

記事Aug. 15th,2018
July 7th,2020
リンク先を読み込む時のリファラーポリシーとリファラーポリシーを指定する“referrerpolicy”属性について
この記事はHTML Living Standardに対応しています。
この記事はHTML Living Standardに対応しています。

referrerpolicy”属性、name="referrer"

サンプルコード

リンク先を開く時にリファラーを送信しない
<a href="http://www.sample.com/sample.html" referrerpolicy="no-referrer">リンク</a>
文書からリクエストを送信する時にリンク先が同じオリジンの場合は完全なリファラーを送信する
<meta name="referrer" content="same-origin">

referrerpolicy”属性はリンク先を読み込む時のリファラーポリシーを指定します。

name="referrer"が指定されたmeta”要素content”属性は文書からリクエストを送信する時のリファラーポリシーを指定します。

属性値はあらかじめ指定されているリファラーポリシーを利用します。

HTML5.2で追加された新しい属性のため古いバージョンのブラウザでは動作しない可能性があります。

使用できる要素

referrerpolicy”属性

要素 説明
<a> リンク先を読み込む時のリファラーポリシーを指定
<area> リンク先を読み込む時のリファラーポリシーを指定
<iframe> 埋め込む文書を読み込む時のリファラーポリシーを指定
<img> 埋め込む画像を読み込む時のリファラーポリシーを指定
<script> スクリプトを読み込む時とスクリプトがリソースを読み込む時ののリファラーポリシーを指定
<link> リソースを読み込む時のリファラーポリシーを指定

name="referrer"

meta”要素name="referrer"を指定する場合、content”属性を使用してリファラーポリシーを指定することができます。

要素 説明
<meta> 文書からリクエストを送信する時のリファラーポリシーを指定

リファラーポリシー

リファラーポリシーとは?

リファラー”もしくは“HTTPリファラー”はブラウザが文書からリンクされているリソースを読み込む時に送信するHTTPリクエストに含む参照元の文書のURLのことです。この“リファラー”は通常ウェブサーバーに記録される他、このリファラーを分析することによってウェブサイトへの訪問者が直前に閲覧していたウェブページの情報を知ることができます。

URLにユーザー名やIDなどセキュリティー上外部に漏らしてはいけない情報が含まれる場合や、何らかの理由でリンク元のURLを知られたくない場合は“リファラーポリシー”によってこれを制御することができます。“リファラーポリシー”は“リファラー”を送信するかどうかを制御するための決まり事で、送信される“リファラー”の内容を制御したり、“リファラー”を送信しないようにすることができます。

また、通常ブラウザではリンク元の文書がHTTPSでリンク先がHTTPの場合など、セキュリティレベルが低いリンク先へのHTTPリクエストにはリファラーを送信しませんが、リファラーを送信するようにしたい場合も“リファラーポリシー”によって送信するようにすることができます。

リファラーポリシーの指定方法

リファラーポリシーの指定の仕方は以下の方法で決められます。

この一覧で上にあるものが優先されます。

リファラーポリシーの一覧

リファラーポリシーを指定する“referrerpolicy”属性と“name="referrer"”が指定されたmeta”要素content”属性の値はあらかじめ定義されているリファラーポリシーを指定する必要があります。

以下はHTML5とHTML Living standardで定義されている属性値です。

リファラーポリシー 説明
no-referrer リファラーを送信しない
no-referrer-when-downgrade 現在の文書もリンク先もHTTPSである場合などリンク元とリンク先のセキュリティレベルが同等と思われる場合は完全なURLをリファラーとして送信し、現在の文書がHTTPSでリンク先がHTTPである場合などリンク元よりリンク先のセキュリティレベルが低い場合はリファラーを送信しない
same-origin 現在の文書とリンク先が同じドメインの場合などリンク元とリンク先が同じオリジンの場合は完全なURLをリファラーとして送信し、異なるオリジンの場合はリファラーを送信しない
origin リファラーを送信するがリンク元のオリジン(ドメイン以降の情報を含まない)のみをリファラーとして送信する
strict-origin 現在の文書もリンク先もHTTPSである場合などリンク元とリンク先のセキュリティレベルが同等と思われる場合はリンク元のオリジン(ドメイン以降の情報を含まない)のみをリファラーとして送信し、リンク元よりリンク先のセキュリティレベルが低い場合はリファラーを送信しない
origin-when-cross-origin 現在の文書とリンク先が異なるオリジンの場合はリンク元のオリジンのみをリファラーとして送信し、同じ場合は完全なURLをリファラーとして送信する
strict-origin-when-cross-origin リンク元とリンク先が同じオリジンの場合は完全なURLをリファラーとして送信し、現在の文書もリンク先もHTTPSである場合などリンク元とリンク先のセキュリティレベルが同等と思われる場合は文書のオリジン(ドメイン以降の情報を含まない)のみをリファラーとして送信し、リンク元よりリンク先のセキュリティレベルが低い場合はリファラーを送信しない
unsafe-url 完全なURLをリファラーとして送信する

リファラーポリシーを指定しない場合や、属性に空の値を指定する場合の規定値は現在の文書から見てリンク先のセキュリティーレベルが低い(HTTPSからHTTPへのリンクなど)場合はリファラーを送信しない“no-referrer-when-downgrade”となります。

それぞれの値を指定した時に送信されるリファラーは以下のようになります。

リファラーポリシー 現在の文書とリンク先がオリジンが同じ 現在の文書とリンク先はオリジンが異なる 現在の文書がHTTPSでリンク先がHTTP
no-referrer リファラーを送信しない リファラーを送信しない リファラーを送信しない
no-referrer-when-downgrade 完全なURLをリファラーとして送信する 完全なURLをリファラーとして送信する リファラーを送信しない
same-origin 完全なURLをリファラーとして送信する リファラーを送信しない リファラーを送信しない
origin リンク元のオリジンのみをリファラーとして送信する リンク元のオリジンのみをリファラーとして送信する リンク元のオリジンのみをリファラーとして送信する
strict-origin リンク元のオリジンのみをリファラーとして送信する リンク元のオリジンのみをリファラーとして送信する リファラーを送信しない
origin-when-cross-origin 完全なURLをリファラーとして送信する リンク元のオリジンのみをリファラーとして送信する リンク元のオリジンのみをリファラーとして送信する
strict-origin-when-cross-origin 完全なURLをリファラーとして送信する リンク元のオリジンのみをリファラーとして送信する リファラーを送信しない
unsafe-url 完全なURLをリファラーとして送信する 完全なURLをリファラーとして送信する 完全なURLをリファラーとして送信する

使用例

リンク先を開く時にリファラーを送信しない

<a href="http://www.sample.com/sample.html" referrerpolicy="no-referrer">リンク</a>

文書からリクエストを送信する時にリンク先が同じオリジンの場合は完全なURLをリファラーとして送信する

<meta name="referrer" content="same-origin">

画像を読み込む時に完全なURLをリファラーとして送信する

<img src="http://www.sample.com/img/sample.png" alt="サンプル画像" referrerpolicy="unsafe-url">
HTMLタグ辞書
HTMLタグ辞書
HTMLタグ辞書
HTMLタグ辞書
HTMLタグ辞書
HTMLタグ辞書
一番上へ
トップにもどる
シェアする
シェアする
Facebookでシェアする
ツイート
Google+でシェア
Pocket
はてなブックマーク