--- title: Referrer-Policy slug: Web/HTTP/Headers/Referrer-Policy tags: - HTTP - HTTP ヘッダー - Reference - Referrer-Policy - Response - referrer - プライバシー - レスポンスヘッダー translation_of: Web/HTTP/Headers/Referrer-Policy ---
{{HTTPSidebar}}

HTTP の Referrer-Policy {{glossary("HTTP header", "ヘッダー")}}は、 ({{HTTPHeader("Referer")}} ヘッダーで送られる) リファラー情報をリクエストにどれだけ含めるかを制御します。ヘッダーに加えて、HTMLでもこのポリシーを設定することができます。

ヘッダー種別 {{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}} いいえ

構文

Referrer-Policy: no-referrer
Referrer-Policy: no-referrer-when-downgrade
Referrer-Policy: origin
Referrer-Policy: origin-when-cross-origin
Referrer-Policy: same-origin
Referrer-Policy: strict-origin
Referrer-Policy: strict-origin-when-cross-origin
Referrer-Policy: unsafe-url

元のヘッダー名である {{HTTPHeader("Referer")}} は "referrer" という語のスペルミスです。 Referrer-Policy ヘッダーはこのスペルミスをしていません。

ディレクティブ

no-referrer
{{HTTPHeader("Referer")}} ヘッダーが省略されます。送信されるリクエストにはリファラー情報が含まれません。
no-referrer-when-downgrade
プロトコルのセキュリティ水準が同一である、または向上する場合 (HTTP→HTTP, HTTP→HTTPS, HTTPS→HTTPS) は、{{glossary("origin", "オリジン")}}、パス、クエリー文字列が {{HTTPHeader("Referer")}} ヘッダーで送信されます。セキュリティ水準が低下するリクエスト (HTTPS→HTTP, HTTPS→file) では {{HTTPHeader("Referer")}} ヘッダーが送信されません。
origin
{{glossary("origin", "オリジン")}}のみが {{HTTPHeader("Referer")}} ヘッダーで送信されます。
たとえば、 https://example.com/page.html にある文書からは、 https://example.com/ というリファラーが送信されます。
origin-when-cross-origin
同一のプロトコル水準 (HTTP→HTTP, HTTPS→HTTPS) で{{glossary("Same-origin_policy", "同一オリジン")}}のリクエストを行う場合は{{glossary("origin", "オリジン")}}、パス、クエリー文字列を送信します。オリジン間リクエストや安全性の低下する移動先 (HTTPS→HTTP) ではオリジンのみを送信します。
same-origin
{{glossary("Same-origin_policy", "同一オリジン")}}のリクエストでは{{glossary("origin", "オリジン")}}、パス、クエリー文字列を送信します。オリジン間リクエストでは {{HTTPHeader("Referer")}} ヘッダーを送信しません。
strict-origin
プロトコルのセキュリティ水準が同じである場合 (HTTPS→HTTPS) にのみオリジンを送信します。安全性の低下する移動先 (HTTPS→HTTP) には {{HTTPHeader("Referer")}} ヘッダーを送信しません。
strict-origin-when-cross-origin (既定値)
同一オリジンのリクエストを行う際はオリジン、パス、クエリー文字列を送信します。オリジン間リクエストでは、プロトコルのセキュリティ水準が同じである場合 (HTTPS→HTTPS) にのみオリジンを送信します。安全性の低下する移動先 (HTTPS→HTTP) には {{HTTPHeader("Referer")}} ヘッダーを送信しません。
これはポリシーが指定されていない場合や、与えられた値が無効であった場合の既定のポリシーです (仕様書改訂 [November 2020] を参照) 。以前の規定値は no-referrer-when-downgrade でした。
unsafe-url
セキュリティに関係なく、どのリクエストを行った場合でも、オリジン、パス、クエリー文字列を送信します。

このポリシーは、 HTTPS リソースの URL から安全ではないオリジンへプライベートである可能性がある情報を漏洩します。設定する場合は影響をよく検討してください。

HTML との統合

HTML 内でリファラーポリシーを設定することもできます。例えば、 {{HTMLElement("meta")}} 要素で namereferrer を設定することで、文書全体のリファラーポリシーを設定することができます。

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

{{HTMLElement("a")}}, {{HTMLElement("area")}}, {{HTMLElement("img")}}, {{HTMLElement("iframe")}}, {{HTMLElement("script")}}, {{HTMLElement("link")}} の各要素に referrerpolicy 属性を指定し、個別のリクエストにリファラーポリシーを設定することもできます。

<a href="http://example.com" referrerpolicy="origin">

他に、 noreferrer link 関係a, area, link の各要素に設定することもできます。

<a href="http://example.com" rel="noreferrer">

上記のように、 noreferrer link 関係はダッシュ記号を用いずに記述されます。 {{HTMLElement("meta")}} 要素で文書全体のリファラーポリシーを指定するときはダッシュをつけて次のように記述します: <meta name="referrer" content="no-referrer">

CSS との統合

CSS はスタイルシートから参照されるリソースにアクセスすることがあります。これらのリソースは同様にリファラーポリシーに従います。

ポリシー 文書 移動先 リファラー
no-referrer https://example.com/page どこへでも (リファラーなし)
no-referrer-when-downgrade https://example.com/page https://example.com/otherpage https://example.com/page
https://mozilla.org https://example.com/page
http://example.org (リファラーなし)
origin https://example.com/page どこへでも https://example.com/
origin-when-cross-origin https://example.com/page https://example.com/otherpage https://example.com/page
https://mozilla.org https://example.com/
http://example.com/page https://example.com/
same-origin https://example.com/page https://example.com/otherpage https://example.com/page
https://mozilla.org (リファラーなし)
strict-origin https://example.com/page https://mozilla.org https://example.com/
http://example.org (リファラーなし)
http://example.com/page どこへでも http://example.com/
strict-origin-when-cross-origin https://example.com/page https://example.com/otherpage https://example.com/page
https://mozilla.org https://example.com/
http://example.org (リファラーなし)
unsafe-url https://example.com/page?q=123 どこへでも https://example.com/page?q=123

代替ポリシーの指定

必要なポリシーのブラウザーの対応状況が十分ではなく、代替ポリシーを設定したい場合は、カンマ区切りのリストを使用し、必要なポリシーを最後に指定してください。

Referrer-Policy: no-referrer, strict-origin-when-cross-origin

上記のシナリオでは、 no-referrer はブラウザーが strict-origin-when-cross-origin に対応していない場合のみ使用されます。

複数の値を設定する方法は、 HTTP の Referrer-Policy ヘッダーのみが対応しており、 referrerpolicy 属性では対応していません。

ブラウザー固有の設定

Firefox の設定

Firefox のユーザー設定では既定のリファラーポリシーを構成できます。設定名はバージョンにより異なります:

どちらも同じ設定値をとります: 0 = no-referrer, 1 = same-origin, 2 = strict-origin-when-cross-origin, 3 = no-referrer-when-downgrade

仕様書

仕様書 状態
Referrer Policy 編集者草稿

ブラウザーの互換性

{{Compat("http.headers.Referrer-Policy")}}

関連情報