Mac Clinic Tips:

Cookieって何?

クッキーは悪者か? 本当は新しいウェッブ技術

作成:1997年9月29日


初期設定フォルダの中の「Netscape ト」フォルダの中にMagicCookieというファイルがあるのに気が付いたユーザーは多いことだろう。分からないファイル名はなんとなく気になるものだが、最近色々な雑誌などで、Cookieは個人情報を盗む悪いやつだというように書かれている。
しかし残念ながら、雑誌の記事ではただあおりたてるだけで、本質的なCookieの意味や、背景にある技術についてはきちんと説明していないのが現実だ。
今回は、CookieとかMagicCookieがどういう働きをしていて、個人情報をどういうかかわりを持つのかを説明してみよう。


クッキーとは何か?

クッキーという言葉の由来には諸説があるが、昔UNIXユーザーによって作られたCookie Monsterという小さなプログラムに起因するという説が有力だ。これは他人のプログラミング中に突然現れて「クッキーが食べたいよう」というメッセージを出す。これに対し「クッキー」と入力しないと作業中のプログラムにいたずらをするというものだ。その後、クッキーという言葉は、UNIXのプログラム間でやり取りされる一種のメダルのようなものをいうようになった。
今日インターネットで使われているクッキーという言葉はWWWサーバーとクライアント(ユーザー)の間でデータがやり取りされる仕組みのことだ。

例えばあなたがあるホームページにアクセスしたとしよう。するとそのサーバーから、例えば、あなたの訪問回数を記録したファイルが送られてくる。それはあなたのMacのHDに保存される。そして、別の日にまたそのホームページにアクセスすると、今後はあなたのMacからそのサーバーに対して、保存されているファイルがサーバーに送り返される。そしてまた訪問回数を1つ増加したファイルが送られてくる。この一連のやりとりされるファイルをクッキーと呼ぶ。色々なサーバーから送られてきたクッキーファイルはMacの中ではMagicCookieという名前の一つのファイルにまとめられて保存される。



クッキーの仕組み

サーバーからクッキーを発行するには、そのためのプログラムが必要だ。CGIが許されるサーバーの場合はCGIスクリプトでプログラミングをする。CGIが許されれないサーバーの場合はJavaScriptでプログラミングすることも可能だ。現在のHTTPサーバはほとんどがクッキーを扱える環境にある。
しかし、クッキーは本来ブラウザーの機能で、ブラウザーにクッキーを保存したり送り返す機能が無ければ、サーバーでクッキーを発行しても受け取ってもらえない。
そもそもクッキーという技術はNetscape社が開発したため、Netscape Navigatorはバージョン1.1から対応している。Internet Explorerの場合は3.0.1から対応している。その他のブラウザーについては不明だが、世界的にはインターネットの標準技術として対応が拡大する方向にある。

実際にクッキーがどう送られてくるのかを実験してみよう。
Netscape3.0にはオプションメニューの「ネットワークの設定」で、クッキーが送られてくるときに警告メッセージを出すように指示できるオプションがある。


(図5:オプション設定)

IE3.0.1では「初期設定」メニューで「クッキー」を選択すると、同様に警告メッセージを出すかどうかの設定が出来る。
これをオンにして、ネットサーフィンをやってみよう。日本のサーバーでクッキーを利用しているところはまだ少ないのでアメリカのサーバーを回ってみよう。とても多いのに驚くはずだ。


(図3:クッキー警告ダイアログ)

Netscapeの例を示すが、アラートの内容はほとんど同じで、次のようなことが書いてある。
「サーバーabc.comはクッキーを送りたいと思います。これはabc.comというドメインに属する全てのサーバーに送り返されるものです。
今回お送りするクッキーの名前と内容は「count=1」です。
このクッキーは1999年12月21日まで有効です。
クッキーを送ってもよろしいですか?」
クッキーの意味を知らないかぎり、日本語で読んでも何やら恐ろしいことがおきるのではないかという文章だ。まして、英語で書かれていると、おもわず「いいえ」を押してしまうのが人情というものだろう。
このメッセージが示しているのは、現在接続しているabc.comというサーバーから"count"という名前のクッキーが送られてくるよ、というだけのことである。

この内容を含んだクッキーはNetscapeファイルの中のMagicCookieというファイルに記憶される。この中身をみたければ、MagicCookieをダブルクリックすればよい。


(図4:MagicCookeの中身)

クッキーの情報はいたってシンプルである。全部で7つの項目しかない。

domain= クッキーを発行したサーバーのドメイン名。このクッキーはこのドメイン名のコンピュータでなければ受け取ることが出来ない。
path= パスとは経路のことだが、特定のホームページにアクセスした場合だけクッキーを返すという指示が出来る。通常はトップページにアクセスしたときクッキーが送られる設定になっている。
expire date= クッキーの有効期間。大体は3、4年になっており、この間はずっと情報が残る。
cookie name= クッキーの名前。
cookie data= クッキーが持っている本当のデータ。

Internet Explorer3.0.1ではクッキーの内容は「初期設定」の「クッキー」設定画面に直接表示される。ここではサーバー名とクッキー名しか表示されないが、実際にはNetscapeと同じ内容の除法が保持されている。

クッキーが発行し保存するデータはサーバー側のプログラムで規定すれば何でも出来る。一つのクッキーの大きさは4KB以下に制限されているが、同じサーバーから複数の名称のクッキーを発行することも出来るので、理論的にはかなり複雑なデータも扱うことが出来る。これらのデータはそれぞれのクッキーの有効期間までMagic Cookieの中に保持される。Netscape Navigatorは立ち上げる度にそれをチェックし、有効期限を過ぎたものは削除する。

Netscapeを立ち上げて、再びabc.comのホームページにアクセスすると、NetscapeはMagicCookieの中に同じドメイン名がないかを探し、あった場合は、abc.comのドメイン名をもったクッキーをabc.comサーバーに送り返す。サーバーはそれの内容を書き換えてまたNetscapeに送り返してくる。これがずっと繰り返されるわけだ。


クッキーで何をするのか

クッキーの仕組みはわかったと思うが、クッキーで何をやろうとしているのだろうか。
現在のホームページは不特定多数に対する情報発信だ。クッキーを使うことで、それぞれのクライアントに特化したホームページの提供やサービスができるようになるのだ。
実際のところ、現在まだクッキーの利用技術は発展途上にある。それほど高度な使われ方をしているわけではない。なんとなく試験的に使われているという漢字だ。しかし、その可能性は無限であり、次のような利用が考えられる。

・イメージ付き/テキストオンリー、フレーム付き/フレームなし等の表示方法をユーザーが選択できるホームページの場合、1回選択のボタンを押すと、クッキーが送られ、次回からは自動的に希望の表示のページに直接リンクされる。
・新着情報といっても、アクセスする人によって既知のものと新規のものがある。クッキーに既知のものは記憶させれば、特定のクライアントにとって読んでいない情報だけを表示することができる。
・アクセスするのにパスワードが必要なページがある。この場合も、クッキーにパスワードを保存させれば、毎回パスワードを入力する必要がなくなる。
・訪問回数をクッキーに保存させる仕組みを作れば、あるクライアントの訪問回数が100回に達したときにプレゼントのページをオープンさせるということが出来る。
・クッキー自体はクライアントの個人情報を自動的に取得することは出来ないが、フォームでインプットした情報はクッキーとして保存することが出来る。クライアントの名前がクッキーとして保存されていれば、そのページにアクセスしたときに「xxさん、ようこそ」というメッセージを出すことができる。
・オンライン通販のページはよく使われているが、過去に注文したすべての商品をクッキーに保存できる。これによりユーザーの関心を判断し、その商品があるページを優先的に見せることが出来る。
・クッキーはページ単位で発行できるので、多くのページで構成されているサイトでは、そのクライアントがどのページに関心があるかを知ることが出来る。それにより特定の情報を与えることが出来る。

クッキーがアイデアとして優れているのは、情報をすべてクライアント側に保存させるという考え方である。上記のどのケースでも、サーバー側でデータベースを作ることは可能だ。しかし何万ものクライアントが訪れるサーバーでそれを行なうのは現実出来でない。サーバーの記憶装置がすぐにあふれてしまう。


クッキーとセキュリティ問題

最近、インターネットにおけるセキュリティ問題(個人情報やクレジットカード情報がもれること)の一つとして、クッキーに関心が高まっている。
確かに、クッキーにはあなたの個人情報が入っている場合がある。もし、あなたがホームページでアンケートに答えたり、会員登録をするとそれはクッキーとして保存される可能性がある。それから、あなたがどんなサイト見ているか他人には知られたくないかも知れない。ところが、クッキーにはそれが保存されているかも知れない。
しかし、これが問題になるのは、第三者があなたのクッキーを見ることが出来る場合だけだ。ところが、現実には、先にも述べたように、個別のクッキーはそれを発行したサーバーでなければ受け取ることが出来ない。abc.comが発行したクッキーをxyz.comが受け取って見ることは出来ないのだ。さらに、クッキーのデータはそれ自体が暗号化されていて他のサーバーでは読めないことが多い。
ダイアルアップ接続の場合は、外部から直接あなたのパソコンに入り込むことは出来ないので、MagicCookieの中味を見られることはない。
インターネットの安全性に神経質になるならば、ホームページ上でクイズに応募したり、ショッピングをするのはやめたほうがよい。クッキーでなくても、その情報を得た会社がそれをデータベースとして他の会社に売ることはいくらでもあるからだ。
それから、あなたのパソコン自体の安全性にも気をつけたほうが良いだろう。電子メールや、Netscapeのキャッシュなどあなたのプライベートな行動をのぞき見られる機会はいくらでもあるからだ。

何度もいうようだが、クッキーはまだ新しい技術だ。ホームページがより便利なものにしてくれる可能性を秘めている。安全性については標準化が進められようとしている。われわれクライアントとしては、もっと積極的に応援すべきものだと思う。

そうはいっても、何だか気味が悪いというユーザーは、Netscapeのオプションで警告を出させてもよいし、時々初期設定フォルダのMagic Cookieを捨てることをお勧めする。これを毎回自動的に行なってくれるフリーウェアの"Cookie Monster"を入れておくのもよいかもしれない。




Mac Fan Internet 97年10月号掲載記事

無断転載を禁ず。
(C)1997.8.9. Harry Ono