星野君の趣味の1つであるFlashゲーム制作。ところが自作ゲームに欠陥があり、全面的な修正が必要なことが発覚した。月曜日、思いっきりブルーな状態で出社してくると、Web管理システムに新たなトラブル発生?
町田さん 「ねえ、星野君」
星野君 「あ、町田さん。どうかしたんですか?」
町田さん 「Web管理ツールって、何かいじった?」
星野君 「え……、特に何もしてないですけど……。何か変ですか?」
町田さん 「まあ、いいからちょっと来てよ」
ちょっと不機嫌そうな町田さん。星野君は、何か怒らせるようなことでもしでかしたのかとドキドキしながらついて行った。
町田さん 「これなんだけどさぁ。昨日まで使えてたのに、なんかログインできなくなっちゃったんだよね……。ほらっ」
星野君 「え、ちょっと貸してもらっていいですか?」
町田さんの使っていたWebブラウザを借りて試してみるが、確かにログインできない。
星野君 「あれ!?ほんとだ。ちょっと自分の席で原因調べてみます」
町田さん 「早くしてよね」
星野君はすぐに自席へ戻ってWeb管理ツールへのログインを試してみた。
星野君 「あれ?普通に入れる……。何の問題もないなぁ」
再び町田さんの席に行ってログインを試してみる。やっぱりできない。ログイン画面はちゃんと表示されているのに。
星野君 「えっと……」
町田さん 「原因分かんないの?困るなぁ」
星野君 「あっ、えと、ちょっとツールを入れてもいいですか?」
町田さんのPCに一時的に検査補助ツールをインストールさせてもらって、Webブラウザで送受信されるデータをチェックしてみた。町田さんはFirefoxを使っていたので、「LiveHTTPHeaders」というプラグインを使ってHTTPリクエスト/レスポンスを確認する。
早速、Web管理ツールにアクセスして、HTTPリクエストを見てみた。サーバにはちゃんとアクセスできているようだ。しかし、Webブラウザから送られるHTTPリクエストを眺めていると、おかしなものが交じっているのに気が付いた。
POST /admin/login.cgi HTTP/1.1 (略) Cookie: CGISESSID=malicious_cookie; CGISESSID=07bfa6d3e299c5dfae2d3faaa1897118 Content-Type: application/x-www-form-urlencoded Content-Length: 35 login_id=xxxxxxxx&password=xxxxxxxx |
「CGISESSID」という同じ名前のCookieが2つ送信されている。この「CGISESSID」はWeb管理ツールのセッション管理で使っているものだ。
しかし、片方に至っては、ご丁寧にも「malicious_cookie」という値が入っている。これは明らかにCookieが操作されていることを示している。どうやらこのおかしなCookieのせいで、セッション管理ができなくなっているらしい。
町田さん 「まだ直んないの?急いでるんだけどなぁ」
星野君 「あ、いや、原因は何となく分かりました。たぶん、WebブラウザのCookieをクリアすればログインできるようにはなるんですけど、何でこうなっちゃったのかがまだちょっと……」
町田さん 「取りあえず、いま使えないと困るから、原因は後でもいいよ」
どうしてCookieが2つあったのかが不思議でしょうがなかったのだが、町田さんがあまりにも急かすので、仕方なくCookieを削除した。
Copyright © ITmedia, Inc. All Rights Reserved.