CookieはOFFにしろ?
ネット上でこんな話を目にすることがある。「セキュリティのためにCookieをOFFにしろ」とか、「Cookieを使うとハードディスクのデータが盗まれる」とか。そしてこの話を見て、実際にCookieをOFFにしている人も少なくないだろう。しかし、どれだけの人がこの言葉の意味を理解しているのだろうか。
そんなわけで、今回は”Cookieとは何か?”、”その安全性は?”ということについて書こうと思う。
Cookieとは何か? Cookieとは、サーバーがユーザー側のコンピューターに情報を記録させておいて、ユーザーが次回そのサイトに訪れた時にその情報を読み取り、ユーザーに合わせたページを表示するメカニズムのこと。そしてその実体は、テキストファイルである。
具体的に仕組みを説明すると、まずサーバーがユーザーに記録させたい情報を、ユーザーがサイトを訪問した時にHTMLやCGIやJavaScriptなんかを使って送信する。そして、これを受け取ったユーザーのコンピューターは"cookie.txt"というファイルにその情報を書きこむ。これ以降、ユーザーがそのサイトにアクセスすると同時にCookieの情報がサーバーに送られる。それをサーバーがCGIやJavaScriptなんかを使って受け取り、その情報をもとにユーザーに合わせたページを送信する。
(注釈: 文中では紛らわしくなるので書きませんでしたが、ユーザーのコンピューター上で実行されるJavaScriptでCookieを扱う場合には、スクリプトが直接"cookie.txt"を読み書きするのでサーバーとユーザーの間でのデータの送受信には関係ありません。)
どのように記録されているか? サーバによって設定されたデータは、ユーザーのコンピューター上に記録される。設定されたすべてのデータは一つのファイル上に、テキスト形式でまとめて一緒に記録されている。各データには「読み出すことのできるサーバーのURL」と、「保存期限」等も同時に設定されている。その中で、「保存期限」はそのデータがユーザーのコンピューター上に保存される期間を表し、これをサーバーが設定しなかった場合そのデータは一時的に記録されるだけで、ユーザーのコンピューターには残らない。
Cookieは安全なのか? まず始めに言っておくが、Cookieは実行ファイルではなく単なるテキストファイルなので、ハードディスクのデータにアクセスする事はありえない。そして、Cookieに書きこまれた情報はそれを書きこんだサイトが指定したURLのサイト(多くの場合、書きこんだサイトのURL)以外には送信されない。すなわち、全く関係無いサイトがCookieの中の他のサイトの情報を読み出す事はできないということだ。
ここまで読むとCookieはかなり安全なものであるように見えるが、やはりどんなブラウザでもセキュリティーホールはつきもので(特にマイクロソフト)、そのセキュリティーホールによりCookieの情報が全て盗まれる可能性もある。通常Cookieに書きこまれる情報は盗まれても大した事の無い情報である事が多いし、そういう情報のみをCookieに書きこむべきなのだが、サイトの管理者がタコだとパスワードのような重要な情報がCookieに書きこまれる事がある。
要するにCookieは、ブラウザのセキュリティーホールとタコな管理者によって危険なものになる可能性があるということだ。ただ、期限の設定されていないCookieに関してはその心配はほとんど無い。