Webアプリケーションから端末を特定するCookie
ここまでで見た通り、HTTPはデータを送受信するというシンプルな仕組みを提供している。だが、複数のHTTPセッションを1つのものとしてまとめて扱う機能がない。
これではなにが困るのか? たとえば、ショッピングサイトを見てみよう。あるユーザーはまずほしいモノを選び、ショッピングカートに入れ、それから会計処理を行なう。この処理をHTTPで行なう場合、それぞれの作業でHTTPのセッションが構築されても、すべての作業を同一の人が手順通り行なったとは証明できないのである。
もちろん、パケットの送信元を見ればIPアドレスは取得できるが、ご存じの通りIPアドレスは端末に固定されたものではないため、接続ごとに変化する可能性がある。また、複数の端末が同じルータを用いてインターネット接続する場合は、NAPT(Network Address Port Translation)の機能で同一のIPアドレスを共用することになる。こうなると、Webサーバ側は複数の端末とは判別できない。
では、どうするか? 現実の店舗の買い物では、ポイントカードなどを発行する。店側は顔や写真に見覚えがなくても、ポイントカードの番号を見れば、顧客を特定できる。これと同じことをWeb上で行なえば、ユーザーが特定できるわけだ。これをWebで実現するのがCookie(クッキー)である。
メッセージヘッダにCookieを埋め込む
Cookieはサーバの要求でクライアントに作られる簡単なテキスト情報だ。Webサーバ側は、このCookieを見ることで、端末を特定できる。
Cookieの仕組みは簡単だ(図6)。Webブラウザからリクエストを受けたWebサーバはあらかじめ用意しておいたCookieの内容をレスポンスヘッダに書き込んで、送信元に返信する。
書き込まれるのはSet-Cookieフィールドで、メインの名前と有効期限、対象となるドメインなどが送られてくるだけだ。Webサーバは、Webブラウザに対してこのCookieの発行を要求し、クライアントPCはローカルのHDDにこれを保存する。Windows XPの場合、CookieはDocuments and Settings\ユーザー名\Cookiesに保存される。
この結果、ショッピングサイトなどは、毎回ユーザー認証などを経なくとも、個人を特定できる。Amazon.co.jpなどで、違う時間にアクセスしても、「大谷さん、こんにちは」などと表示されるのも、いったん行なったユーザー認証の結果とCookieをうまくひも付けているからだ。
こうしたCookieは古くから個人情報の漏えいを心配する声も多い。CookieはWebサーバ側でなにを書き込むのか制御できるので、信頼できないWebサーバからのCookieを受け入れるとユーザーの情報が漏れる可能性もある。そのため、WebブラウザではサーバからのCookieをどのように受け入れるか設定することが可能だ。
Internet Explorerでは「インターネットオプション」の「プライバシー」タブから「設定」を開く。ここではCookieの種類や受け入れ方などで、6段階のポリシーが設定できる(画面1)。
(次ページ、「通信のセキュリティを確保するSSL」に続く)
この連載の記事
-
第8回
ネットワーク
どうして携帯電話でインターネットできるの? -
第7回
ネットワーク
Webにまつわる危険をきちんと知っていますか? -
第5回
ネットワーク
高度なWebアプリケーションを実現するRIAの仕組み -
第4回
ネットワーク
HTMLからXMLへ!Webを彩るコンテンツを知ろう -
第3回
ネットワーク
今さら聞けないWebサーバの役割と機能 -
第2回
ネットワーク
サーバを指定するURLの仕組み -
第1回
ネットワーク
Webブラウザから拡がる楽しい世界 -
ネットワーク
WWW完全制覇 - この連載の一覧へ