Web Artisan Blog - ウェブ アルチザン ブログ

PHP:IE6でサードパーティのクッキーを受け入れるようにする:P3P

PHP (55 items)

2005年12月16日

IE6のデフォルト設定では、
プライバシーポリシーに対応しないサイトからのクッキーは、
受け入れないようになってます。

クッキーは利用の仕方によっては危険なものとなり得ますので、
まあ、こういう設定自体はいいとは思いますが、
デフォルトで全て弾くというのは、現状のWebサイトの流れからすると、
便利なものではありません。

これによる弊害は、主にサードパーティのクッキーが利用できない事にあります。
サードパーティのクッキーとは、
現在表示されている画面のドメイン以外のドメインによって操作されるクッキー、
例えば、自分のサイトのHTML内に、
どこか別のサイトの広告タグやアフィリエイトタグを埋め込んだ場合に、
その別ドメインのタグからクッキーを操作する、
これができない事になります。

で、サードパーティのクッキーを利用する側、
つまりサイトを閲覧している人がこれを回避するには、
IE6の「プライバシー設定の詳細」なんかで、
受け入れるサードパーティのドメインなんかを指定すればいいんですが、
ここで言いたいのは、サードパーティ側の話です。

サードパーティ側としては、いちいちサイト閲覧ユーザーに
「IE6の設定でこちらのドメインを許可して」とは言えません。
よって、ユーザーが何もしなくても、
クッキーを設定できるようにする必要があります。
で、どうするのか?
IE6は、P3P対応ブラウザです。
P3Pって何?と言う事ですが、
ネット上には以下の様に載ってますね。

P3P(ピースリーピー ):Platform for Privacy Preferences
W3Cが進めているWebサイトのプライバシー・ポリシーを記述するための標準フォーマットのこと。



IEが、こんな時だけW3C準拠的なものを取り入れてるのも変ですが、
まあ、IE6以前ではクッキーによる脆弱性で色々あったでしょうし、
ここは、P3P適用!となったようです。

・・が、この辺ってまだまだ取り決めも曖昧なようで、
IE6も、P3P対応ブラウザって事なんですが、
それって単純に、
「P3Pを送信しないクッキーは受け入れない」
程度の事しかやってないようです。。

なんで、現状のIE6への対応としては、
クッキーに値を設定する時に、
「私のサイトはクッキーをこういう用途で使ってますよ」
といったP3P情報を送信してやれば、
クッキーが受け入れられる事になります。

PHPで言えば、setcookie関数でクッキーに値を設定する前に、

header("P3P: CP='UNI CUR OUR'");


という具合に、header関数でP3P情報を送信してやればいいのです。

ちなみに、上記の各値の意味ですが、

UNI:個人を識別するために使用可能な情報(金融機関が発行したID、政府発行のID情報を除く)特定のWebサイトを参照したときに、個人を識別するために生成されるID
CUR:利用者からの働きかけによって、開始されたWebアクセスのアクティビティを維持する Web検索からのリターン/電子メールの転送/発注処理/オンライン上の住所録・ウォレットへのアクセス
OUR:当組織または当組織の業務を委託している法人 サイトの運営者


のようになってるようです。
よって、値の設定は、
各サードパーティ側がクッキーを使ってる用途に沿ったもの、
でないといけないでしょう。

前の記事 次の記事

Comments

コメントは、まだ書かれていません

Add Comments

Trackback

PHPのテクメモ wrote:

他サイトクッキーに関する記述:
他サイトクッキーに関するわかりやすい記述を見つけたのでメモ。 http://www.res-system.com/weblog/item/540 次期IEはこのあたりがどうなるのか早く知りたいところだ。
2006年05月07日 20時02分25秒

Trackback URL

http://www.res-system.com/weblog/action.php?action=plugin&name=TrackBack&tb_id=540