name=”referrer”」Web2018年4月30日Chromeが警告を出すように立ったことをきっかけに、世界的に急速に進んでいるWebサイトのSSL化ですが、「httpsからhttpへの遷移ではリファラを渡せない」という問題があります。そこで本記事ではhtmlにmetaタグを1行追加するだけで、リファラを渡すようにすることができる方法をご紹介させていただきたいと思います。本来はリファラを渡すべきではないRFC2616では以下のように記載があります。クライアントは、参照されるページがセキュアプロトコルで転送された場合は、(セキュアで無い)HTTPリクエストにRefererヘッダフィールドを含むべきではない。新仕様「meta="referrer"」を使うhttpsからhttpの際に渡せないリファラですが、以下のmetaタグによりクライアント側でリファラポリシーを制御することができます。content="任意の値を記述">設定できる値none記述したページからリファラを渡さないorigin記述したページからドメイン名のみのリファラを渡す※https://hoge.jp/hoge.htmからは「https://hoge.jp/」のみを渡すnone-when-downgrade現在の動作と同じ※HTTPS→HTTPではリファラを渡さない※HTTPS→HTTP以外の遷移は全URLをリファラとして渡すorigin-when-crossorigin同ドメインによるHTTP/HTTPSの種類も同じURLへの移動であれば全URLをリファラとして渡す※それ以外はドメイン名のみのリファラを渡すunsafe-urlHTTPS、HTTP関係なく全URLをリファラとして渡すつまり、記事タイトルの「httpsからhttpにリファラを渡す方法」を実現するには、以下のように値を「unsafe-url」とすればOKです。content="unsafe-url">実装されているのは一部のブラウザのみただしこのmetaを記述すればリファラ問題が完全に解決するかといえばそうでもなく、一部のブラウザでの実装に留まっています。name="referrer"が実装されているブラウザFirefoxChrome※2018年4月30日時点Safariで実装されていないのが痛いですね。iPhoneでも渡せるようになれば、かなり精緻な値が期待できるのですが。以下のページで詳しく解説されていますが、サーバ側でReferrer-Policyヘッダーにてmetaタグ同様の値を指定することもできます。Referrerを制御するサーバ側の設定操作やhtaccessの設置が可能であれば、htmlの編集をする必要がない分楽です。unsafe-url」が表示されている事が確認できます。name="referrer"は一部のブラウザでしか実装されていないのが難点ですが、htmlに記述するだけでhttpsからhttpへの遷移でもリファラが渡せるようになるのはありがたいことですね。SSL化に合わせてSafari含め他のブラウザが追随することを期待して「とりあえず記述しておく」という考え方でも良いと思います。本記事がご参考になれば幸いです。ため、即時には反映されません。住宅ローン2019年5月7日さらに見る記事を書いている人フォローするRSSを購読するWebデザイナー/フロントエンド・エンジニアのMasaです。独学でWebデザインを勉強後Web業界へ就職し、今の会社に勤めて12年目になりました。2016年4月にマイホームを購入し、休日は芝生いじりと育児に励んでいます。