Software Engineer and Web Developer's Diary

1年後の自分に向けて

Cookieとインターネットオプション

IEのプライバシーレベルとCookieの関係を調べました。

クッキーには主に  ・セッションを終了すると消えるCookie  ・セッションを終了しも消えないCookie  ・Secureな通信でしか使えないCookie があるようです。

その違いはCookie作成時のパラメーターで指定する事ができます。以下表になります。

書式 設定
名前=値 必須属性。セミコロン( ; )、カンマ( , )、スペース( )や日本語を使用する際には、それぞれをエンコードする必要があります。
domain=ドメイン domain 属性にはCookieを発行するドメイン名を指定します。

[例1] domain=domain.com

省略した場合はウェブサーバの「ホスト名.ドメイン名」になります。
path=パス path 属性はこの Cookie を発行する URL を指定します。
Cookie の値はこのパス名にマッチするすべてのファイルに対して返されます。たとえば「/cgi-bin/A.cgi」で Cookie を発行した場合、pathの指定を省略すると、エクスプローラの場合は「path=/cgi-bin/」、ネットスケープの場合は「path=/cgi-bin」となり、マッチングにより「/cgi-bin/B.cgi」などにまで返されます。
expires=GMT 必須属性。クライアント側のディスクに記録される Cookie の有効期限を指定します。値は以下のようなフォーマットで指定します。

[書式] Wdy, DD-Mon-YYYY HH:MM:SS GMT
[例] Fri, 31-Dec-1999 23:59:59 GMT

過去の値を指定すると Cookie 情報が削除されます。
この項目を省略した場合、クライアント側のキャッシュに限定して記録され、セッション終了時に削除されます。
secure secure 属性を記述しておくと、Cookie データが暗号化されて送信されます。サーバーとの接続がセキュアである時のみ有効で、通常は省略されます。

もう一つコンパクト プライバシー ポリシー(クッキーの受け入れ証書)について説明します。

コンパクト ポリシーはWorld Wide Web Consortium (W3C) が開発した Platform for Privacy Preferences (P3P) Project で定義されています。  参考URL:http://www.microsoft.com/japan/msdn/privacy/general/ie6privacyfeature.asp

Internet Explorer 6 プライバシー機能は、 ユーザーのプライバシー設定だけでなく、 このコンパクト ポリシーに基づいて Cookie をフィルタ処理します。

簡単に言うとIE6は、ブラウザのプライバシー設定のレベルとWEBサイトのプライバシーポリシーを比較し、Cookieの使用/フィルタ処理/未使用を判断します。 以下表です。

選択内容指定内容
すべてのクッキーの使用を許可しないInternet Explorer を使うと、自分のコンピュータへは、すべての Web サイトから クッキーを格納させないようにし、Web サイトは、そのコンピュータ上にある既存のクッキーを読み出せません。
Internet Explorer では、コンピュータが読める圧縮したプライバシー声明文であるコンパクト プライバシー ポリシーを持たないクッキーを、Web サイトが格納しないようにします。このブラウザは、個人的と認められる情報を使用するクッキーも、明白な同意を得ないまま Web サイトが格納しないようにします。
中の上Internet Explorer は、コンパクト プライバシー ポリシーを持たないサード パーティのクッキー、または個人的と認められる情報を使用するクッキーを、Web サイトが明白な同意を得ずに格納しないようにします。このブラウザは、個人的と認められる情報を使用するファースト パーティのクッキーも、暗黙の同意を得ないまま Web サイトが格納しないようにします。
Internet Explorer は、コンパクト プライバシー ポリシーを持たないサード パーティのクッキー、または個人的と認められる情報を使用するクッキーを、Web サイトが暗黙の同意を得ずにコンピュータに格納しないようにします。ブラウザは、暗黙の同意を得ずに個人的と認められる情報を使用する、ファースト パーティのクッキーの使用を許可しますが、ブラウザを閉じる際に、このようなクッキーをコンピュータから削除します。
Internet Explorer は、コンパクト プライバシー ポリシーを持たないサード パーティのクッキー、または個人的と認められる情報を使用するクッキーを、Web サイトが暗黙の同意を得ずにコンピュータに格納しないようにします。しかし、ブラウザを閉じると、ブラウザはサード パーティのクッキーをコンピュータから削除します。
すべてのクッキーの使用を許可するInternet Explorer を使うと、自分のコンピュータへは、すべての Web サイトからクッキーの格納を許可し、コンピュータ上にクッキーを作成する Web サイトは、そのクッキーを読み出せます。

そこで気になるのは「プライバシーポリシーはどうやって決めるのか?」です。もしWEBサイトの管理者が自由に設定できるのなら意味がない気がするからです。

以下のサイトはP3Pについてわかりやすくまとめています。 【絵で分かるキーワード】P3P(The Platform for Privacy Preferences Project、ぴーすりーぴー)

虚偽の申告については自然言語ポリシー文書と同様に、実世界の法的規制力しかない。P3P対応だからといって、即安心というわけではないことは覚えておきたい。

↑ということは自己申告制ですね。でもプライバシーポリシーの標準化という意味では意義のあることだと思います。

 参考:P3P 1.0 の公開について (W3C 勧告)P3P 検証ソフトウェア










以下は参考にしたサイトや情報です。

クッキーの受け入れ証書には4種類あるみたいです。 1.サイトにプライバシー証書がない 2.ユーザーの同意なしに個人情報を収集する 3.ユーザーの暗黙上の同意だけを得て個人情報を収集する 4.ユーザーの明示的な同意がない限り個人情報を収集しない

↓このサイトを見ればだいだいわかります Windows XP Online Book / IEのセキュリティ

ファーストパーティの Cookie は、現在表示している Web サイトで作成されたもの
サードパーティCookie は、現在表示している Web サイト以外のサイトで作成されたもの、またはそこに送信されるもの

プライバシーレベルと内容の一覧表

選択内容指定内容
すべてのクッキーの使用を許可しないInternet Explorer を使うと、自分のコンピュータへは、すべての Web サイトから クッキーを格納させないようにし、Web サイトは、そのコンピュータ上にある既存のクッキーを読み出せません。
Internet Explorer では、コンピュータが読める圧縮したプライバシー声明文であるコンパクト プライバシー ポリシーを持たないクッキーを、Web サイトが格納しないようにします。このブラウザは、個人的と認められる情報を使用するクッキーも、明白な同意を得ないまま Web サイトが格納しないようにします。
中の上Internet Explorer は、コンパクト プライバシー ポリシーを持たないサード パーティのクッキー、または個人的と認められる情報を使用するクッキーを、Web サイトが明白な同意を得ずに格納しないようにします。このブラウザは、個人的と認められる情報を使用するファースト パーティのクッキーも、暗黙の同意を得ないまま Web サイトが格納しないようにします。
Internet Explorer は、コンパクト プライバシー ポリシーを持たないサード パーティのクッキー、または個人的と認められる情報を使用するクッキーを、Web サイトが暗黙の同意を得ずにコンピュータに格納しないようにします。ブラウザは、暗黙の同意を得ずに個人的と認められる情報を使用する、ファースト パーティのクッキーの使用を許可しますが、ブラウザを閉じる際に、このようなクッキーをコンピュータから削除します。
Internet Explorer は、コンパクト プライバシー ポリシーを持たないサード パーティのクッキー、または個人的と認められる情報を使用するクッキーを、Web サイトが暗黙の同意を得ずにコンピュータに格納しないようにします。しかし、ブラウザを閉じると、ブラウザはサード パーティのクッキーをコンピュータから削除します。
すべてのクッキーの使用を許可するInternet Explorer を使うと、自分のコンピュータへは、すべての Web サイトからクッキーの格納を許可し、コンピュータ上にクッキーを作成する Web サイトは、そのクッキーを読み出せます。

Cookie作成時のパラメーター

パラメータ 意味
NAME=必須。好きな名前に好きな値を指定します。セミコロン(;)、カンマ(,)、空白文字( )や日本語を使用する際にはそれぞれ、何らかの形式にエンコードする必要があります。エンコードには %3B、%2C、%20 などの URL形式のエンコードがよく用いられるようです。
expires=クライアント側に記録される Cookie の有効期限を
tdu, 1-Jan-2030 00:00:00 GMT
のような形式で指定します。タイムゾーンは必ず GMT で指定します。省略するとブラウザを終了させるまでが有効期限となります。過去の値を指定すると Cookie を削除します。
domain=Cookie を発行する Webサーバーの名前を指定します。省略した場合は Webサーバー名(tohoho.wakusei.ne.jp など)になります。
patd=ここで指定したパス名にマッチするページを参照したときに、ブラウザは保存しておいた Cookie情報をサーバーに送ります。例えば、patd=/tanaka と指定すると、/tanaka にマッチするすべてのページに対して Cookie情報が送られます。省略時は、Cookie を設定したページのパス名部になります。
secureこれを記述しておくと、サーバーとの接続がセキュアである時のみ、Cookie情報が送信されるようになります。

羊堂本舗(2004-11-08)

上で書いたことに対する一番簡単な対処は、はてなにログインした時に2種類の異なる Cookie がセットされるようにすればいい。ひとつは従来の Cookie。もうひとつは異なる値をもった Secure フラグを立てた Cookie。Secure フラグを立てた Cookie は通信路が SSL/TLS で保護されている時のみクライアントからサーバに送られる。 Set-Cookie: rk="334236aec4906c6175ffceea7af1cbd8"; Version="1"; Path="/"; Domain=".hatena.ne.jp"; Max-Age="315360000" Set-Cookie: rk="9f48c911ab6ee2a8988d2c1d2e5948b7"; Version="1"; Path="/sslregister"; Domain="www.hatena.ne.jp"; Secure こんな感じ。従来の日記やアンテナの編集のための認証には従来どおり上の Cookie を用いる。このとき通信路は保護されていないので下の Cookie がサーバに送られることはない。 https://www.hatena.ne.jp/sslregister_ へのアクセス時には上下の Cookie が二つともクライアントからサーバに送られる。下の Cookie を個人情報を表示するかどうかの認証に使う。 下の Cookie は Max-Age を設定していないのでブラウザを終了すると同時にブラウザから消去される。 Secure フラグを立てた Cookie は生まれてから消去されるまで保護された通信路しか通らないので、第3者から盗み見られることがない。 RFC 2965 HTTP State Management Mechanism_

【絵で分かるキーワード】P3P(The Platform for Privacy Preferences Project、ぴーすりーぴー)

ユーザーはあらかじめ自分のポリシーをWebブラウザに設定しておくことで、Webサイトから送られてくるP3P形式のポリシーを、Webブラウザに自動的にチェックさせることができる。具体的には、P3P対応のブラウザは、Webサイトにアクセスしたとき、 1. HTTPヘッダにP3P文書のURIがないか 2. XHTML、HTMLのlinkタグにP3P文書のURIがないか 3. ウェルノウン・ロケーションにp3p.xmlが存在しないか(例えばアスキーならhttp://www.ascii.co.jp/w3c/p3p.xml) を検出し、もし存在すれば、それを取得する。そして、それをユーザー側のP3P文書と比較し、相違点をユーザーに示す。

コンピュータ系blog: P3P(Platform for Privacy Preferences)P3P(Platform for Privacy Preferences)関係のリンクがあります。

プライバシー設定

ファーストパーティとは今見ているページで、サードパーティとは広告会社など、今見ているページとは関係のないページのことです。Cookieでよく問題になるのは「サードパーティ」の方です。