- 追加された行はこの色です。
- 削除された行はこの色です。
&pgid();
#contents
** P3Pとは? [#t590c0bc]
P3P(The Platform for Privacy Preferences)とはWebサイトが収集しえるプライバシー情報の取り扱い方(プライバシーポリシー)を自然言語ではなく、XMLで定義し、表明する文書です。従来、「顧客情報の取り扱い」「プライバシーポリシー」といったコンテンツで自然言語で表現されていたプライバシーポリシーをP3Pを使うことでプログラムが読める形にし、これによってユーザはあらかじめ自分のポリシーをクライアント(Webブラウザなど)に設定しておくことで当該Webサイトのポリシーが自身が設定しておいたポリシーに抵触しないかを自動的にチェックすることができます。
&color(red){ただし、P3Pはあくまで当該Webサイトが自身のプライバシーポリシーを表明し、ユーザに通知することを自動化する手段です。つまり、当該Webサイトが実際にプライバシーポリシーに沿った運用をしていることを保障するものではありません。};
Reference:
[[【絵で分かるキーワード】P3P(The Platform for Privacy Preferences Project、ぴーすりーぴー)>http://akiba.ascii24.com/db/review/soft/web/2003/06/01/643973-000.html]]
** P3Pを設定する背景 [#bc591d3b]
P3Pはあくまでプライバシーポリシーを表明するもので、Webサイトの実際の運用に対して強制力を持つものではありません。後述するように、設定も結構面倒です。
しかし、IEではバージョン6からこのP3Pに対応しているため、サイトによってはP3Pを設定していないと、IEのデフォルトのプライバシー設定([インターネットオプション]->[プライバシー]->[中])に抵触して警告が出る、サイトの機能が動作しないといった現象が生じます。具体的には『アドレスバーに表示されているドメイン以外のドメインとのCookieの送受信を行わず、また警告を表示する』という現象が生じます。例えば、あるサイト(ドメインA)に別ドメイン(ドメインB)の広告が埋め込まれていて、この広告がCookieを発行、または受信しようとする場合に警告が表示されます。
対処法としてユーザに説明して
- [インターネットオプション]->[プライバシー]の設定を[すべてのCookieを受け入れる]に設定変更してもらう
または、
- Cookieの送受信を許可して欲しいドメインを[インターネットオプション]->[プライバシー]->[サイト]->[サイトの管理]から登録してもらう
といった方法も取りえますが、わざわざプライバシーポリシーを変える、しかもより規制の緩い方にというのはユーザの立場からすると面倒ですし、抵抗感も大きいと思います。
そこで、P3Pによってプライバシーポリシーを明示することでこの現象に対処することを考えます。
** 設定方法 [#ye24ade1]
一般にP3P対応のブラウザがWebサイトにアクセスしたときの挙動は、
周知の存在場所にあるP3Pへの参照とHTTP応答の中にあるP3Pヘッダ及びHTMLコンテンツの中に埋め込まれているP3P linkタグを捜す。これらの参照は、関係するP3Pポリシーの存在場所を示している。ユーザエージェントは、示された存在場所からポリシーを取り込み、それを解析し、シンボルを表示したり、音を鳴らしたり、サイトのP3Pプライバシーに関する処理を示すプロンプトメッセージを生成したりする。
([[Platform for Privacy Preferences 1.0 (P3P1.0) 仕様書 - 1.1.4 P3Pユーザエージェント>http://www.iajapan.org/trans2japanese/w3c/rec-p3p-20020416j.html#UserAgents]]より引用)
とあります。
そのため、サイトをP3P対応にするためには、
- 周知の存在場所にP3Pポリシー参照ファイル置く
または、
- P3Pポリシーの場所(URI)をHTTP応答内のP3Pヘッダ内やHTMLコンテンツ中のP3P linkタグで指し示す
必要があります。
P3Pポリシー参照ファイルとはあるURIとそのURI集合に対応するP3Pポリシーの場所(URI)を指し示すために利用されるファイルです。また、パフォーマンスの最適化のためにも利用されます(P3Pポリシーを参照しているURIは通常100バイト未満ですが、P3Pポリシーは通常、数キロバイトのデータです)。
周知の存在場所(Well Known Location)はP3P対応したいドメインの/w3c/p3p.xmlになります。例えば、Miqqle(http://miqqle.ark-web.jp/)であれば、http://miqqle.ark-web.jp/w3c/p3p.xmlが周知の存在場所になります。周知の存在場所の利用は
[[Platform for Privacy Preferences 1.0 (P3P1.0) 仕様書 - 2.2.1 周知の存在場所>http://www.iajapan.org/trans2japanese/w3c/rec-p3p-20020416j.html#Well_Known_Location]]でも強く推奨されています。
また、IEの場合、
コンパクト ポリシーは Cookie 操作に関連する HTTP ヘッダーに追加されます。 Internet Explorer 6 はこれらコンパクト ポリシーを使用して、ユーザーのプライバシー設定に基づいて Cookie をフィルタ選択します。
([[Web サイトに P3P プライバシー ポリシーを導入する方法>http://www.microsoft.com/japan/msdn/workshop/security/privacy/overview/createprivacypolicy.aspx]]より引用)
のように動くため、[[コンパクトポリシー>http://www.iajapan.org/trans2japanese/w3c/rec-p3p-20020416j.html#compact_policies]]も設定する必要があります。
コンパクトポリシーとは「ポリシーの適用についてユーザエージェントが迅速で同時の決定をできるためのヒントを提供するP3Pポリシーを要約したもの」で、HTTPヘッダに次のようなフォーマットで追加して利用します。
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTR STP IND DEM"
("NOI ADM DEV PSAi COM NAV OUR OTR STP IND DEM"の箇所は要約を表現したものであるため、当然サイトのプライバシーポリシーによって異なってきます)
まとめると、IEにも対応したP3Pの設定を行う為には(一般的に)、
+ P3Pポリシーを作成する
+ P3Pポリシー参照ファイルを作成して、周知の存在場所(/w3c/p3p.xml)に置く
+ P3Pポリシーからコンパクトポリシーを作成してHTTPヘッダで出力するようにする
の設定を行います。
** 具体的な設定例(Miqqleの場合) [#z0aa8c83]
具体的な設定例としてMiqqle(http://miqqle.ark-web.jp/)に設定したP3Pを挙げます。
(2007/10/04現在、Miqqleはまだ完全にP3Pに対応できていません。現在、対応中です^^;)
*** 背景 [#vbcc4254]
Miqqleは任意のドメイン上で実行されるWebアプリケーションで、ユーザを特定するためにセッションIDに該当する予測しずらく一意となる文字列をCookieで発行しています。このCookieの発行はmiqqle.ark-web.jpドメインで行うため、ブラウザには任意のドメイン上でmiqqle.ark-web.jpドメインとのCookieの送受信ができる必要があります。IEにおいてこれをクリアするために、MiqqleではP3Pを設定することにしました。
Miqqleは任意のドメイン上で実行されるWebアプリケーションで、ユーザを特定するためにセッションIDに該当する予測しづらく一意となる文字列をCookieで発行しています。このCookieの発行はmiqqle.ark-web.jpドメインで行うため、ブラウザには任意のドメイン上でmiqqle.ark-web.jpドメインとのCookieの送受信ができる必要があります。IEにおいてこれをクリアするために、MiqqleではP3Pを設定することにしました。
*** 1. P3Pポリシーを作成する [#r545b513]
*** 2. P3Pポリシー参照ファイルを作成して、周知の存在場所(/w3c/p3p.xml)に置く [#f14f96cf]
*** 3. P3Pポリシーからコンパクトポリシーを作成してHTTPヘッダで出力するようにする [#aeec6eee]
#blikifooter(進地)
tag: [[セキュリティ>tag/セキュリティ]], [[P3P>tag/P3P]], [[CrossDomain>tag/CrossDomain]]