コーディング

えー写真に意味はありません。ただ一つ言えることは、可愛いは正義です。

さて先日、当ブログをHTTPS化しました。

非常にセキュアになったのは嬉しいのですが、HTTPSページからHTTPページにリンクで飛んだ場合、HTTPページはリファラを受け取ることができません。

これだと、リンクしたことをお伝えできないのでちょっとアレですよね。

なんとかならないもんかと思ったら、HTMLにあるmetaタグを挿入することで、リファラを制御できるようです。

HTTPSページでもリファラを制御できるメタタグ。

HTMLを策定している、W3Cにそのメタタグが紹介されています。

2016年4月19日現在、以下の5種類が用意されています。

no-referrerは、リファラを全く送らない仕様ですね。HTTPS→HTTPSでもリファラを送りません。↓↓

<meta name="referrer" content="no-referrer">

ドメインだけのリファラを送りたい場合は、origin。↓↓

<meta name="referrer" content="origin">

none-when-downgradeは、HTTPS→HTTPSの場合にリファラを送ります。HTTPS→HTTPの場合にはリファラを送りません。まぁ普通にSSLを実装した場合は、特につけなくても同じ動作をするので、特に意識しなくてもいいメタタグとも言えますね。↓↓

<meta name="referrer" content="none-when-downgrade">

origin-when-crossoriginは、同じドメイン同士の移動ならば、フルURLのリファラを送りますが、他のドメインへの移動の場合は、ドメインのみのリファラを送ります。↓↓

<meta name="referrer" content="origin-when-crossorigin">

unsafe-urlは、HTTPS→HTTPだろうと、HTTPS→HTTPSだろうと、同じドメイン同士だろうと、違うドメイン同士だろうと、常にリファラを送るという仕様です。↓↓

<meta name="referrer" content="unsafe-url">

注意なのが、このメタタグは、完全に採用されたタグではないので、もしかしたら将来使えなくなる可能性があります。

ただ、最新のGoogle Chromeや、Firefoxは対応しています。残念ながらSafariはiOS版、Mac版ともに対応していないようですが・・・。

さて、どのメタタグにしようか・・・。

全てのページに完全なURLのリファラを送りたいところですが、「unsafe-url」はちょっと抵抗がありますよね。

Githubのソースコードを見てみると「origin-when-crossorigin」を採用しているので、こちらで様子を見てみようと思います。

早く全てのウェブがHTTPS化すればいいのに・・・。