Referrer-Policy

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

* Some parts of this feature may have varying levels of support.

Referrer-PolicyHTTP ヘッダーで、 (Referer ヘッダーで送られる) リファラー情報をリクエストにどれだけ含めるかを制御します。 HTTP ヘッダーのほかに、 HTML でこのポリシーを設定することもできます。

ヘッダー種別 レスポンスヘッダー
禁止リクエストヘッダー いいえ

構文

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

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

ディレクティブ

no-referrer

Referer ヘッダーが省略されます。送信されるリクエストにはリファラー情報が含まれません。

no-referrer-when-downgrade

プロトコルのセキュリティ水準が同一である、または向上する場合 (HTTP→HTTP, HTTP→HTTPS, HTTPS→HTTPS) は、オリジン、パス、クエリー文字列が Referer ヘッダーで送信されます。セキュリティ水準が低下するリクエスト (HTTPS→HTTP, HTTPS→file) では Referer ヘッダーが送信されません。

origin

オリジンのみが Referer ヘッダーで送信されます。 たとえば、 https://example.com/page.html にある文書からは、 https://example.com/ というリファラーが送信されます。

origin-when-cross-origin

同一のプロトコル水準 (HTTP→HTTP, HTTPS→HTTPS) で同一オリジンのリクエストを行う場合はオリジン、パス、クエリー文字列を送信します。オリジン間リクエストや安全性の低下する移動先 (HTTPS→HTTP) ではオリジンのみを送信します。

same-origin

同一オリジンのリクエストではオリジン、パス、クエリー文字列を送信します。オリジン間リクエストでは Referer ヘッダーを送信しません。

strict-origin

プロトコルのセキュリティ水準が同じである場合 (HTTPS→HTTPS) にのみオリジンを送信します。安全性の低下する移動先 (HTTPS→HTTP) には Referer ヘッダーを送信しません。

strict-origin-when-cross-origin (既定値)

同一オリジンのリクエストを行う際はオリジン、パス、クエリー文字列を送信します。オリジン間リクエストでは、プロトコルのセキュリティ水準が同じである場合 (HTTPS→HTTPS) にのみオリジンを送信します。安全性の低下する移動先 (HTTPS→HTTP) には Referer ヘッダーを送信しません。

メモ: これはポリシーが指定されていない場合や、与えられた値が無効であった場合の既定のポリシーです (仕様書改訂 November 2020 を参照) 。以前の既定値は no-referrer-when-downgrade でした。

unsafe-url

セキュリティに関係なく、どのリクエストを行った場合でも、オリジン、パス、クエリー文字列を送信します。

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

HTML との統合

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

html

, , ,