2016.04.29Tweetウェブページの中に別サイトを表示させたいことがあります。その場合、通常iframeというHTMLタグを使い、指定した領域に別サイトをそのまま読み込むことで実現します。このiframeはとても便利な機能で、モーダルウィンドウなどでも使われていますよね。このiframeには、ちょっとした問題があることに最近気付かされました。一部のブラウザでは、iframe内別サイトのクッキー(Cookie)が正しく処理されないのです。iframe内の別サイトが認証を要求するもので、その認証がクッキーによって管理されていた場合、一部のブラウザでは認証を通過することができないのです。認証をしていなくても、クッキーでセッション管理していた場合、正常な遷移をおこなることができなくなります。さまざまなブラウザで試してみたところ、IE(11)とiOS(9.3.1)のsafariでこの症状が確認され、他のPCのブラウザ(Chrome/firefox)やandroidのブラウザ(標準/Chrome/firefox)では確認されませんでした。調べてみると、どうやらこのような問題は「サードパーティ・クッキー問題」と呼ばれ、その対応がブラウザによってまちまちであるために、このような問題が起こっているようです。サードパーティ・クッキーとは、「ユーザがアクセスしたドメインとは異なるドメインから取得されるクッキー・データ」のこと、つまりiframe内の別サイトからのクッキー・データはその最たるものということになります。これによる問題点はユーザーが意識しないところでクッキーのやり取りが行われてしまうことです。Aというサイトにアクセスして、そのページにBという別サイトを表示するiframeが仕込んであったとすると、ユーザーはサイトAを見ているつもりなのに、知らず知らずのうちにサイトBとクッキーのやり取りが行われてしまう――このような方法がトラッキングとして応用された場合、おおまかな個人情報が第三者に渡ってしまう可能性もあるわけです。対応策としては、ブラウザのセキュリティレベルを下げるなどの手立てがあるようですが、それをユーザーにしいるというのは現実的ではありません。別サイトの方で、あるヘッダー情報を出力すると回避できるようなのですが、それには別サイト側とのコミュニケーションが必要になってしまいます。現状このような方法をとる場合には十分な注意が必要になると言えるでしょう。indexソースコードは自己責任により自由にお使いください。何らかの不利益が生じたとしても一切責任を負いません。