ネット上で商売するのが当たり前な時代。自社でWebサイトやWebアプリを抱える企業も相当な数になっている。そこでインシデントが発生すれば信用、ブランド、収益……失うものは計り知れない。
本連載では情報セキュリティの専門家・徳丸浩さんが制作した脆弱性診断実習用のWebアプリ「BadTodo」を題材に、ストーリー形式でWebアプリ制作に潜む“ワナ”について学んでいく。
登場人物は全て架空の存在だが、ワナは全て現実にあり得るもの。セリフは徳丸さんの監修の下制作した。
カクーノ株式会社:Webアプリ開発を手掛ける企業。本記事に登場する企業・団体及び人物は全て架空の存在である。
荒井考人(あらいこうと):入社したばかりの新人プログラマー。基本的なプログラミングスキルはあるが、情報セキュリティに関する知識は豊富とはいえず、荒いコードを書きがち。今は研修でWebアプリ「ToDoリスト」を作っている。
上野司(うえのつかさ):荒井考人の上司。指導役として荒井のコードにツッコミを入れてくれる。荒井が研修でWebアプリを構築するに当たり、データベース周辺など前提の部分はすでに組んでいる。
上野 ようし、今度こそ研修の最終回だ。最後はキャッシュについて確認をしよう。
荒井 はい。今回のWebアプリを作るのにもキャッシュサーバを活用しました。
上野 だよね。でも、荒井君はまたまた落とし穴に引っかかっている。実際に見てみようか。
上野 例えば……IDやメールアドレスが載っているマイページを見てみよう。ページのURLに「rnd」から始まる文字列があるよね。これを取ったものを、ログインしていない別のブラウザで開いてみると……。
荒井 あ、メールアドレスとか見えちゃってますね……。
上野 たまにキャッシュから情報漏えいする事例があるけど、こういう仕組みなわけだ。
荒井 マイページをそのままキャッシュにしてしまっているので、考えてみれば当たり前ですよね……。これ、どうすればよかったんですか?
上野 HTTPヘッダに「キャッシュコントロール」を加えよう。「no-store」を指定すれば、このページはキャッシュに保存しないようにできる。あ、「no-cache」とかと間違えがちだから気を付けてね。
Copyright © ITmedia, Inc. All Rights Reserved.
Special
PR