UJP - 技術情報

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

     

ホワイトデー記念 Cookie クッキー,食べますか?


ホワイトデー記念

Cookie

クッキー,食べますか?

〜すみません,ありがちなタイトルで〜


0.改定履歴

  • 1997.03.14 初版
  • 2000.05.14 不都合な情報を消した

1.Cookieとは?

 インターネットで遊んでいると,どこかのサーバさんが,「ねぇねぇ,あなた,私のクッキーを食べない?」と言ってきます. クッキーが嫌いでないあなた(ブラウザ)は,それを受け入れ,食べて(ハードディスクに保存)しまいます.

 さて,こんどまた,その「サーバさん,こんにちは!」(再びそのサーバをアクセスする)と,今度は,あなた(ブラウザ)が,「サーバーさん,前こんなクッキーもらったよ〜」と以前食べたクッキーを自動的に送り返します.

 Cookieとは,初めて訪れたサーバさんから,あなた専用の情報を貰ってあなたのハードディスクに保存してしまい,そして再度そのサーバを訪れたときにその情報を見せてあげる仕組みなのです.

 Cookieで受け取る情報自体は,16進数の文字列で,数バイトです. これを一杯受け入れたからと言ってハードディスクの容量が圧迫されるようなことはありません.

2.Cookieの受け渡し

 具体的に,サーバとブラウザでCookieの受渡を時系列で追ってみましょう.

  1. あなたがブラウザ(Netscape NavigatorとかInternet Exploror)で,Cookieを使っているサーバにアクセスします.
  2. ブラウザからは,サーバに送るヘッダに要求するURLが入っています.
  3. サーバではそのURLを見ると,Cookieがありません. そこで,サーバが自動的にあなた用のIDを生成し,それをCookieとして,要求されたドキュメント(ホームページ)と一緒にブラウザに返します.
  4. あなたのブラウザは,返却されたドキュメントと送信ヘッダの中にCookieが含まれていたらそれをハードディスクのCookieを保存するファイルやディレクトリに保存します.

 Cookieには,サーバで生成されたIDとURLが保存されます. また,保存期間が付いている場合はその日まで,期間が付いていない場合にはブラウザが終了するまで,そのCookieは保存されます.

  1. たとえば後日,あなたがブラウザで再度,そのサーバをアクセスします.
  2. ブラウザでは,そのURLが保存しているCookieの情報と一致した場合,保存しておいたCookieの内容をHTTPのヘッダ内に含めて要求を出します.
  3. Cookieは,サーバ側ではHTTP_COOKIEという環境変数に設定されます.
  4. サーバの環境変数はCGIプログラムで取得できますから,それを判断してユーザにホームページを送信します.

 前述のような物がCookieの簡単な仕組みですが,送受信されるCookieの存在などは,通常ユーザは意識する必要が全くありません. 自動的に処理されるのです.

3.Cookieの制限

 Cookieは,次のような制限もあります.

  • ブラウザで保存できるCookieは最大300個.
  • 1つのCookieは4Kまで.
  • 1つのサーバは20個までしかCookieを持てない.

 この制限は,現時点での話なので,将来的にはもっと拡張されるかも知れません.

 また,どの様なブラウザが対応しているかというと,Netscape Navigatorではバージョン1.1Nから実装していますので,殆どのブラウザで対応しているといえるでしょう.

3.じゃぁ,どうしてCookieをくれるの?

 もし,そのCookieをデータベースで管理していたら,サーバ側ではそのユーザがいつどのページを見たか...などを管理する事も可能です.
 アクセスログを解析する場合は,Proxyを通しているので正確な情報は取れませんが,クライアントに保存してあるCookieを使えば,これが可能です.

 たとえば,こんな利用方法があります.

 Cookieを利用すれば,その人が興味のあるホームページをダイナミックに見せる様な仕組み,たとえばCookieからユーザを特定して,過去のログからそのユーザが自分のサイトのMacintoshに関する情報をアクセスしたとなれば,それに関する情報を集めたホームページを生成して見せる...なんて事が可能なわけです. 上手く行けば,その人に合った広告を含んだページを作成することも夢ではありません.(作るのは大変そうだけど)

4.毒入りCookie

 以上のように,簡単にCookieの仕組みを説明しましたけど,Cookieも悪用しようとすれば出来ないことは無いってことに気付くでしょう?

 やろうと思えばユーザの動きを監視しておくことも出来ます. たとえば,エロサイトでユーザの動きを収集された場合,本気で警察が動いたら...などと考えると,Cookieはいつでも食べて良いものだとは思えませんねぇ.

5.Cookieを食べる前に警告させる方法

 Cookieに対応しているブラウザであれば,このクッキーを受け入れる時に警告し,ユーザに判断させる事が出来る様になっています.

 ただ,Cookieを受け入れないとホームページが正しく表示されない場合もあるようです.

5.1 Netscape Navigator3.0(英語版)の場合

  1. [Option]メニューから[Network Preferences]を選択する.
  2. [Protocols]タブをクリックする.
  3. [Show an Alert Before]内の「Accepting a Cookie」をチェックすると,Cookieを受け入れる前に警告ダイアログが表示される..

5.2 Internet Exploror3.0(日本語版)の場合

  1. [表示]メニューから[オプション]を選択する.
  2. [詳細設定]タブを選択する.
  3. ["cookie"を受け入れる前に警告する(C)]を選択する.

6.Cookieを削除する方法

6.1 Netscape Navigator(3.0)の場合

 Cookieは,全て次のファイルに記述されている.

C:\Program Files\Netscape\Navigator\cookies.txt

6.2 Internet Explororの場合

 IEの場合は,以下のフォルダ下に保存されているファイルがCookieである.

C:\Windows\Cookie\s\*.*

7.参考

7.1 Cookieファイルの中身サンプル

7.1.1 Netscape Navigatorの場合

# Netscape HTTP Cookie File
# http://www.netscape.com/newsref/std/cookie_spec.html
# This is a generated file!  Do not edit..adobe.com	TRUE
	/	FALSE	946684799
   INTERSE	202.248.26.13221633857114524240.msn.com
	TRUE	/	FALSE	937396800
	MC1	ID=eb0998449b2b11d0899d0000f84a147d

7.1.2 Internet Explororの場合

MC1
ID=341e68f185d811d0b8130000f84a14eb&JP_DONE=1
msn.com/
0
3590660096
29294449
4224193440
29104735
*

7.2 Cookieの受け入れの警告の例

7.1.1 Netscape Navigatorの場合

7.1.2 Internet Explororの場合



参考:

参考資料:



広告スペース
Google