3rd-party cookie について、Facebookの場合

昨日の Shibuya.js でmalaさんが話してたことの内に、3rd Party Cookie の是非があった。

http://www.ustream.tv/recorded/8605067

  • Shibuya.jsの第一部まとめ、みたいな感じのやつ

Shibuya.js beyond HTML5 に参加してきます - 北海道苫小牧市出身の初老PGが書くブログ

では3rd Party Cookieに対して、実際のサービスはどうなってるのか。はてなスターはてブくらいだったら、正直世界的には影響ないかもしれない。ブラウザの実装はこれらサービスのことなどたぶん何も考えずに進化していく可能性が高いんではないかな(すいません)。

でもFacebook(FB)は違う。ユーザ規模が大きすぎる。Facebookが使えないと困るので、ブラウザの実装がそっち側に揺れる可能性は十分ある。また、Facebookがやっているから、と、他のサービスが追従することもありえる。


最近でたFacebook Like(日本語だと「イイネ」)というのがある。

要は、これFacebookはてなスター、だと思っている。はてなスター同様JSを貼り付けるだけで導入できるので、かなりの数のWebサイトが導入してる。その点ではてなスターは先見の明があったのかもしれない。惜しむらくはソーシャルグラフが出来上がらないうちにサービスをやってしまったことか。まあ今回はそれについてはさておく。

Facebookは、Facebook Connect など、いろいろHackを多用してクロスドメインでのサービス提供に早くから取り組んでいたけれども、こちらはある意味あまり大したHackはない。ドメイン間のトークンのやりとりなどは含まれず、単に3rd Party Cookieによって認証された状態でiframeの中でPOSTしている。認証されていない場合はポップアップウィンドウが開く。

このパターンの良い点としては、トークンのやりとりを含まないので、OAuthなどにみられるリダイレクトや承認などめんどうさがない(ブログをふぁぼるのにいちいちいくつものサイトにアクセス許可与えたいか?)。悪い点としては、ユーザは常にトラックされているような感じになる(どのWebサイトに行っても自分のアイデンティティが表示されている)

はてスタのようにJSONPだと自動送信の3rd-party Cookieに依存するしかなくCSRFし放題になりがちだが、IFRAMEならもっとそのあたりうまくやれるかもしれない(Facebookが実際どうやっているかは詳しくは見ていない)。でも結局 3rd party cookie の送信はONでないと動かない。試しにOFFにしてやってみたらウィンドウオープンクローズが無限ループになったりする。


ちなみに、僕個人には、3rd-Party Cookieに対しての現在の状況について特に立場はなく、3rd party cookie OFFにしろ、とまではあまり思わないし、実際にそう設定はしていない。特に、以前に3rd-Party Cookieが問題になったのは、Ad Networkが無条件にトラッキングのためのCookieを食わせていたからと認識している。実際、今でも3rd-Party Cookieの受け入れはだいたいデフォルト拒否になっている。

ただ、今日のように普遍化してしまったFacebookにおいて、3rd-party cookie を受け入れるもなにもほとんどのユーザが既に受け入れている状態(日本人にはあまり実感わかないかもしれないけど)だから、前回のとはちょっと状況が違う気もする。いずれにせよFacebookは(Likeボタンとか特に関係なく)プライバシーという観点では結構叩かれているわけですね。