編集長ブログ―安田英久
meta name="referrer"は、HTTPS→HTTPでもリファラを出す新しい仕様

HTTPS→HTTPでもリファラが送られるようにするタグをChromeとFirefoxが実装へ

今日は、ちょっと技術的な話を。「meta referrer」という、リンクをクリックしてページ移動するときなどにリファラをどう送るかを、ページ側で指定できるタグの実装が進んでいるのです。

グーグルはHTTPSを推奨するけれども、リファラが……

グーグルは、サイトがHTTPSかどうかを順位決定の要因とするなど、HTTPSを推奨しています。

でも、自分のサイトをHTTPSにすると、自分のサイトから非HTTPS(ふつうのHTTP)のサイトへのリンクをクリックしたときに、リファラが飛ばないんですよね。

これは、RFC 2616で、「セキュア接続のページから、非セキュア接続のページに移動するときは、リファラを送出するべきではない」と定められているからです(セクション15.1.3)。

とはいえ、Web担のようなメディアでは、「Web担のページから、うちのサイトにけっこう来る人いるんですよ」という反応も大切なので、なかなかHTTPSにしづらいところでした。

新仕様meta referrerを使えばHTTPS→HTTPでもリファラを出せる

しかし、そうした問題を解決する仕様があります。「リファラポリシー」というW3Cの仕様で定められているものです。

要は、「metaタグなどで、そのページにおけるリファラの送出をコントロールできるようにしよう」というもの。

この仕様はまだ最終版にはなっていない「草案(Working Draft)」なのですが、2014年8月時点の仕様では、metaタグで指定する場合、次のようにすると定められています。

<meta name="referrer" content="ここに設定値を指定">

設定値としては、次のものが定められています。

  • none ―― そのページからリファラを一切送らない

  • origin ―― そのページからは、リファラとしてドメイン名のみのURLを送る(例:https://example.jp/page.htmからは、リファラとして「https://example.jp/」が送られる)

  • none-when-downgrade ―― 現在の動作と同じ(HTTPS→HTTPではリファラを送らない、それ以外の場合は元ページの全URLをリファラとして送る)

  • origin-when-crossorigin ―― 同じドメイン名でHTTP/HTTPSの種類も同じURLへの移動ならば、元ページの全URLをリファラとして送る。そうでなければ、リファラとしてドメイン名のみのURLを送る

  • unsafe-url ―― 常に全URLをリファラとして送る

※以前の仕様には「never」「always」「default」がありましたが、現在は非推奨。

つまり、HTTPS→HTTPでもリファラが送られるようにするには、次のようにすればいいんですね。

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

リファラとしてリンク元ページの全URLではなくドメイン名だけ送られるようにするには、次のようにします。

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

すばらしい! これなら、リファラを気にせずにサイトをHTTPS化できますね……と思うかもしれませんが、1つ問題があります。

対応しているのはまだ一部のブラウザ

残念ながら、このmeta referrerにちゃんと対応しているブラウザは、意外と少ないのです。編集部で確認したところ、次のような状況でした(2015年4月現在)。

  • 対応している
    • PC
      • Google Chrome(Windows版)
      • Google Chrome(Mac版)
      • Firefox 38(開発者版、正式版は未リリース)
    • モバイル
      • Chrome for Android(41.0.2272.96で確認)
  • 対応していない
    • PC
      • Firefox 37
      • IE ~11
      • Spartanエンジン(次期IE、RemoteIEで検証)
      • Safari
    • モバイル
      • Android標準ブラウザ(~4.4.4で確認)
      • Android 版 Firefox
      • iPhoneのSafari(~iPhone 6で確認)
      • Chrome for iOS(41.0.2272.58で確認)

Web担だと、HTTPSにしてmeta referrerを指定しても、全体の半分ぐらいのユーザーさんしかそれに対応していないということになります。モバイルユーザーが多いサイトでは、もっと厳しいですね。

まぁ、この仕様はまだ策定中ですからね。ChromeとFirefoxという2つのブラウザで実装されれば、仕様の策定が進み、他のブラウザも対応するようになる……ことを期待します。

HTTPSのサイトの方は、とりあえず<meta name="referrer" content="unsafe-url">をHTMLのテンプレートに入れておくといいのではないでしょうか。

仕様に関する、もうちょっと詳しい情報

ちなみに、この仕様の内容は、次のページで確認できます。

この記事ではmetaタグでの指定方法を解説しましたが、仕様では、metaタグ以外にも次のような方法で指定できると定められています。

  • Content Security Policy HTTPヘッダー内のreferrer値
  • Content Security Policy metaタグのreferrer値
  • <a>、<area>、<img>、<iframe>タグのreferrer属性(指定できる値は少し異なる)

この仕様に対しては、プライバシー保護などを理由にした反対もあるようです。とはいうものの、そもそもこの仕様が提案された背景にあるのは「HTTPS→HTTPだとリファラが飛ばないから、ページの種類によってはサイト管理者がリファラの送り方を選べるようにしたいこともあるよね」というもので、仕様の中にプライバシーに関する言及などもありますし、主導しているのはグーグルの人ですので、私は楽観的に見ています。

早く、大多数のブラウザがこれをサポートするようになりませんかね。

tweet273このエントリーをはてなブックマークに追加
日本赤十字社 東日本大震災 義援金募集
Web担メルマガでラクラク情報ライフを
注目記事が毎週手もとに届いて見逃さない
要チェックのセミナー情報もゲットできる
編集長コラムを一足先に読める
―― 10万人が読んでいる、Web担必読メルマガです

今日の用語

ジオターゲティング
IPアドレスなどから閲覧者の居住地を解析し、それを利用する技術。 居住地を ... →用語集へ

連載/特集コーナーから探す

インフォメーション

Web担のメルマガを購読しませんか?
Web担の記事がコンパクトに毎週届くメールマガジン「Web担ウィークリー」は、10万人が読んでいる人気メルマガ。忙しいあなたの情報収集力をアップさせる強い味方で、お得な情報もいち早く入手できます。

Web担に広告を掲載しませんか?
購読者数10万人のメールマガジン広告をはじめとする広告サービスで、御社の認知向上やセミナー集客を強力にお手伝いいたします。

サイトマップ
RSSフィード


Web担を応援して支えてくださっている企業さま [各サービス/製品の紹介はこちらから]

GOLD SPONSOR
さくらインターネット株式会社株式会社KDDI ウェブコミュニケーションズ株式会社日本レジストリサービスHP Softwareトランスコスモス株式会社株式会社ハイパーボックスDomain Keeperアドビ システムズ 株式会社
SPONSOR
株式会社キノトロープ株式会社アイレップ株式会社ニューズ・ツー・ユーシックス・アパート株式会社ウェブアンテナ株式会社サイバーエージェント富士通株式会社SitecoreYahoo!プロモーション広告Oracle