FacebookアプリのCookieがIEで無効になってしまう現象を回避する方法
IEの場合、デフォルトの設定で「P3Pコンパクトポリシーが定義されていないサードパーティーcookieは受け入れない」動作となっている為、Facebookアプリでも、FirefoxやChromeだとちゃんと動くのにIEだとなぜか動かない…という現象に遭遇したりします。
この問題に対処する為には、レスポンスのHTTPヘッダに具体的なポリシーの内容を出力してあげればよいです。
Railsの場合は、以下のようなfilterを追加すればよいようです。
# application_controller.rb def ie_p3p_fix if request.env["HTTP_USER_AGENT"] =~ /MSIE/ response.headers["P3P"] = 'CP="CAO PSA OUR"' end end before_filter :ie_p3p_fix
ちなみに、IEの「インターネットオプション」で「プライバシー」の設定を「すべてのCookieを受け入れる」に変更すれば、問題なく使用出来るようになるのですが、セキュリティ的にも論外ですし、利用者全てにこれを強制するのも非現実的ですよね。
P3Pコンパクトポリシーについては、以下などを参考にして頂けると良いかと思います。
P3Pコンパクトポリシーをコピペするのが流行らないことを祈る | 水無月ばけらのえび日記
それにしても、P3P対応ブラウザの状況などを調べてみてもなかなか情報が少なくて見つけづらいのは、IE以外ではあまりまともに実装されていないということなのでしょうかね?