- Microsoft Edgeの仕様変更が、v94にてありました。
- Microsoft Edge(というか他のどのブラウザでも)リファラーの情報をプライベートにする動きがあり、リファラーがドメインのトップしか表示されなくなりました。
- ブラウザの規定値では
strict-origin-when-cross-origin
になっているので、ドメインまでしか送りません。明示的にheaderにno-referrer-when-downgrade
を記述することで、リファラを取得できるようになります。
リファラーの問題
- 今までは、フルパス(
https://example.com/articles/helllo
)でリファラーが取れました。 - 一方で、最近はルートパスしかとれなくなりました。(
https://example.com
)
原因
- Microsoft Edgeの v94での、仕様変更がありました。
- Microsoft EdgeはChroniumをベースに開発されているOSで、Chronium自体がリファラを取得できないような実装になったそうです。
- 公式リリースは以下の通りです。
Referrer Policy: Default to strict-origin-when-cross-origin
Site compatibility-impacting changes coming to Microsoft Edge
This change is happening in the Chromium project, on which Microsoft Edge is based. For more information, including the planned timeline by Google for this change, see the Chrome Platform Status entry.
この変更は、Microsoft Edgeの基となるChromiumプロジェクトにて行われています。この変更についてのGoogleの計画的なタイムラインを含む詳細情報については、Chromeプラットフォームステータスのエントリをご覧ください。
理由
- セキュリティの向上
具体的な対応方法
- リファラーの設定をしないと、デフォで、
strict-origin-when-cross-origin
になってしまう - headに以下のタグを追加することで明示的にリファラーを出してもらうようにする
<meta name="referrer" content="no-referrer-when-downgrade">
詳しくは、下記記事をご覧ください。