このウェブサイトはご利用の端末での閲覧に対応していません。
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”属性は文書からリクエストを送信する時のリファラーポリシーを指定します。

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

使用できる要素

referrerpolicy”属性

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

name="referrer"

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

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

リファラーポリシー

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

リファラー(Referrer)”、もしくは“HTTPリファラー”はブラウザが文書を開く時や、その文書からリンクされているリソースを読み込もうとする時にウェブサーバーに送信されるHTTPリクエストに含まれる参照元の文書のURLのことです。この“リファラー”は通常ウェブサーバーに記録されるほか、多くのウェブサイトではリファラーを使用して訪問者がどのウェブサイトからやってきたのかを解析しています。

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

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

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

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

  1. noreferrer”が指定された“rel”属性
  2. referrerpolicy”属性
  3. name="referrer"が指定されたmeta”要素
  4. Referrer-Policy”HTTPヘッダ

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

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

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

リファラーポリシー 説明
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
はてなブックマーク