Referrer-Policy
Referrer-Policyの定義
Referrer-Policyは、ユーザーが別のページに移動する際に、ウェブサイトがユーザーのブラウジング活動に関する情報をどの程度共有するかを制御するHTTPヘッダーを指します。リファラーヘッダーはユーザーが最後に訪れたウェブページのURLを明らかにし、受信側のウェブサイトがリクエストの出所を確認することを可能にします。

Referrer-Policyの動作方法
ユーザーが新しいページに移動するためにリンクをクリックするとき、リファラーヘッダーは自動的にリクエストと共に送信されます。これにより、前のページのURLなどの機密情報が新しいページの所有者に露出する可能性があります。
Referrer-Policyヘッダーは、ウェブサイトの管理者が、ユーザーが異なるウェブページに移動する際にリファラー情報を含めるか、除外するか、または修正するかを指定することを可能にします。これにより、外部サイトとの共有情報の量を制御し、潜在的なプライバシーおよびセキュリティリスクを軽減することができます。
予防のヒント
- リファラー情報の共有量を制御するために、Referrer-Policy HTTPヘッダーを設定するようウェブサーバーを構成します。
- 外部サイトとのリファラーデータの共有量を制限するために厳格なポリシーを選択し、プライバシー侵害のリスクを減らします。
- ベストプラクティスとセキュリティ推奨に基づいて、Referrer-Policyの設定を定期的にレビューし、更新します。
Referer Header
リファラーヘッダー、つまりRefererヘッダーは、リンクが辿られた前のウェブページのURLを含むHTTPヘッダーフィールドです。ユーザーがあるページから別のページに移動する際に自動的にリクエストに含まれます。リファラーヘッダーによって提供されるリファラー情報は、ウェブサイトの所有者がサイトへのトラフィックの元を理解し、ユーザーの行動を分析し、マーケティングキャンペーンの効果を追跡するのに役立ちます。
しかし、リファラーヘッダーはプライバシーおよびセキュリティに関連する懸念を引き起こしています。デフォルトでは、リファラーヘッダーは前のページのフルURLを、クエリパラメータや機密情報を含めて公開します。これは、ウェブサイトの所有者やサードパーティサービスへの個人情報または機密データの意図しない開示につながる可能性があります。
Referrer-Policyを使用したリファラー情報の制御
リファラーヘッダーに関連するプライバシーおよびセキュリティリスクに対処するために、Referrer-Policyヘッダーが導入されました。Referrer-Policyヘッダーにより、ウェブサイトの管理者はユーザーが別のウェブページに移動する際に共有されるリファラー情報を制御することができます。
Referrer-Policyヘッダーを設定することにより、ウェブサイト所有者はリファラー情報を含めるか、除外するか、修正するかを指定できます。以下は一般的なReferrer-Policy指令です:
no-referrer: リファラーヘッダーはリクエストから完全に除外されます。これは、受信サイトとリファラー情報が一切共有されないことを意味します。これは最も厳格なポリシーであり、最高レベルのプライバシーを提供しますが、分析やクリックトラッキングなどの一部の正当な機能を制限する可能性があります。no-referrer-when-downgrade: Referrer-Policyヘッダーが指定されていない場合のデフォルトポリシーです。安全な(HTTPS)ウェブサイトに移動する場合はフルリファラー情報を送信しますが、より安全でない(HTTP)ウェブサイトに移動する場合はリファラーを除外します。これにより、セキュアなサイトから非セキュアなサイトに移動する際にリファラー情報を保護するのに役立ちます。origin: リファラーURLのオリジン部分のみが送信されます。オリジンはスキーム、ドメイン、ポートで構成され、パスやクエリパラメータは除外されます。これは、リクエストの出所に関する情報を提供しますが、フルURLを公開することはありません。origin-when-cross-origin:originポリシーに似ていますが、同じオリジン(同じドメイン)内でのリクエストが行われた場合はフルリファラーURLが送信されます。これは、ウェブサイト内の分析やトラッキングに役立ちつつ、別のドメインに移動する際のリファラー情報を保護します。strict-origin: リファラーURLのオリジン部分のみが送信されます。同じオリジンかクロスオリジンかに関わらず、パスやクエリパラメータは除外されます。このポリシーは、最もプライバシーを重視し、パスとクエリパラメータを除外します。strict-origin-when-cross-origin:strict-originポリシーに似ていますが、同じオリジン内でのリクエストが行われた場合はフルリファラーURLが送信されます。このポリシーは、プライバシーと機能のバランスを取ります。