参照元(リファラー)で本当のURLが不明になることについて

最終更新日: 公開日: 2020年11月

ブラウザ chrome ではバージョン 85 以降で,referer (referrer) が正確に分からないように仕様を変更されました.

このため,ホームページのログ解析(アナリティクスなど)もどこのページからアクセスされたのかがわからず,どのホストからアクセスされたか(とプロトコル)しか分からない状況(つまりトップページからアクセスされたような状況)になっています.

現在,他のブラウザの状況を調査してみました.
Edge はバージョン 86 で参照元がトップページからのアクセスになっています.
Safari はバージョン 14.0.1 604.1 で参照元がトップページからのアクセスになっています.
Firefox はバージョン 83 の時点でまだ参照元が分かる状態です.
IE はバージョン 11.1198 の時点で参照元が分かります.


この画像の意味は最後までお読みいただくと分かります.

リファラー(referer)が取得できないということ

説明すると,今まで

https://www.rectus.co.jp/archives/971

のページに他のサイトへのリンクがあった時に「誰かがそのページの他のサイトへのリンクをクリックする」と,その他のサイトでは誰かが

https://www.rectus.co.jp/archives/971

からアクセスされたということが分かっていたものが,今後は

https://www.rectus.co.jp/

からアクセスされたということしかわからなくなり,実際にどのページで言及されていたかということが分からなくなってしまったということです.

なぜリファラー・参照元を取得できないようになってしまったか

ウェブサイトを制作,運営している人には興味深い内容がのっている
https://web.dev/
ですが,

Referer and Referrer-Policy best practices
というページがあります.

簡単にいうと引数やパスには個人を特定するようなものやそのURLをクリックするだけで何らかの命令を実行するようなコマンドが含まれているので参照元として渡すのはやめた方がよいということです.
ただ,実行するようなコマンドはそもそも,それを実行するサーバーが参照元として渡すべきではないので,サーバーの方でその辺りのセキュリティ対策はしておくべきです.

が,実際はそうなっていないサーバーもあるので「ブラウザで対策するぞ」ということだと思います.

通常の見てもらうことだけを念頭においたホームページの場合,参照元を隠す理由はほぼ見当たりませんが,メール配信などで自分のホームページに個人を特定するような引数をつけてメール配信をしている場合は気を付ける必要があります.

そのメール配信でアクセスした先のページに別サイトへのリンクがある場合は要注意です.
その別サイトでアクセス解析がなされていれば,解析した人がその参照元をクリックすればその人個人に成り代われてしまうからです.

個人を特定するような引数付きでアクセスされる可能性のあるページに他のサイトへのリンクが埋まっている場合は今回の Chrome のセキュリティ対策はとてもよい対策と言えます.

リファラーを取得できるようにするためには

ただし,そのようなメール配信などなく,ただ広く自分のホームページを見てほしい場合,さらに感謝も兼ねて外部サイトへのリンクを設けていることも多いと思います.

そのような場合はページやウェブサイトの設定を変更することにより、従来通りに参照元を知らせることもできます.

その際に使うものが
HTTP の Referrer-Policy ヘッダー
というものです.
詳しくは Referrer-Policy を見てもらうのが良いです.

この設定は A タグに属性を入れたり,CSS で指定したり,ウェブサーバーで指定する方法があります.

Google Chrome のバージョン 85 以降では strict-origin-when-cross-origin が標準になっていますが,
no-referrer-when-downgrade
をあえて指定することによって,参照元をあえて渡すことが出来るわけです.

Aタグに記述する方法

Aタグに記述するのが簡単ですが,以下のように書けばリンク先に参照元のURLを伝えることができるようになります.

<a href="https://www.rectus.co.jp/" rel="no-referrer-when-downgrade">株式会社レクタス</a>

apache の場合

.htaccess が効く場合は以下のようにしてやれば従来通り,リファラーをつけてくれます.

ちなみにこの Referrer Policy のブラウザ対応はこうなっています.
ほぼ対応といっていいでしょう.

<IfModule mod_headers.c>
Header set "Referrer-Policy" "no-referrer-when-downgrade"
</IfModule>

インターネットの文化として

インターネットが普及したために広く様々な情報が比較的簡単に手に入るようになりました.
今までだと気づかなかった有用な情報に出会うケースも圧倒的に増えました.
もちろん,正しい情報か間違った情報かを見極めるスキルは必要ですが,それでも便利な世の中になったと思います.
そして,それを支えるのは無償で情報を提供している人々です.

もちろん,その人の自己満足のために情報を提供している場合もあるかもしれませんが,単純に多くの人に知ってもらいたいという善意の場合もあるでしょう.
基本的に感謝されると人間は気持ちのよいものです.
感謝されたいと思って情報提供するのは悪いことではないでしょう.

リンクを張る行為というのは,情報源を知らせるだけでなく,その参考になった記事にリンクでお礼を伝える行為でもあると思うのです.

それをおもうと参照元ページをお知らせ出来ないというのは少し悲しい話です.
かといってセキュリティを考えるとやむを得ない面もあり,難しい問題ではあります.

上記の方法で参照元を参照したサイト管理者に伝えることは可能ですが,個人情報付きの URL でアクセスされる可能性がある場合は十分注意しましょう.

 タグ: , ,  
 

Contact

ご質問等ありましたら,下のフォームからお願いします.

 
   
Apache Chrome Chrome 拡張機能 CSS Git Google HTML javascript PageSpeed Insights PHP python SEO Windows WordPress xyzzy Youtube z-index アナリティクス ウェビナー エディタ サーチコンソール サーバー管理 スライダー セミナー タグマネージャー テレワーク デザイン データベース ネットワーク フォーム ページ閲覧解析 マーケティング リッチリザルト レスポンシブ レスポンシブ対応 ログ解析 ローカル環境構築 営業 実装
contact
Pagetop