体系的に学ぶ 安全なWebアプリケーションの作り方

巷で話題の書籍「体系的に学ぶ 安全なWebアプリケーションの作り方」を著者である徳丸さんから頂きました。
徳丸さんが書籍を書くにあたりレビューアを募集していたときに、おもしろそうなので一足先に読みたいなと思ったものの、それがレビューというよりは自己満足のための動機であること、レビューアに求められている条件、特に「初心者目線」「言語(PHPPerlJavaC#/VB.NETJavaScriptSQL)のエキスパート」には当てはまりそうにないので申し込まなかったのですが、どうしても我慢しきれなくなり、XSSやリダイレクト、受動的攻撃に関する箇所だけフライングでレビューさせて頂きました。そもそも徳丸さんの書く文章は、世間では「安心の徳丸印」と言われるくらい完成度が高く、レビューするといっても指摘するような間違いは滅多になく、ほとんどが好みの問題として片付けられてしまうような些末なことばかりで、全体のレビューをしている人は大変だなと思いながら楽しませてもらいました。
さて、本書の内容ですが、まさにタイトルにふさわしく、前から順に読んでいくことで安全なWebアプリケーションをどうやって作成すればいいのかが網羅的に把握できる内容となっています。Webアプリケーションセキュリティに関して、初学者にまず学んでもらうための教科書として適切な書籍というものがなかなか見つからず、そういうものを尋ねられたときに結構悩んでいたのですが、これからはこの「徳丸本」がまさに教科書として相応しいのではないかと思います。
目次を見ればわかるように、「脆弱性とは何か」という本質的であるにも関わらず見過ごされがちな点を真正面から見据え、以降も付属CD-ROMをベースとした体験環境の構築方法やFiddlerのセットアップ、HTTPの説明などが続き、Webアプリケーションプログラミングに関する経験の浅い人でもつまづくことのないように配慮された内容になっています。
続く第4章は圧巻の237ページという、これだけで通常の書籍1冊はあろうというボリュームで、XSSSQLインジェクション、セッション管理の問題といった、Webアプリケーションセキュリティの中心的なトピックを丁寧に解説しています。5章以降も、パスワードリマインダに代表されるアプリケーション上のアカウント管理や文字コード、携帯電話向けアプリケーションでの対策に関するトピックなどが、安全なWebアプリケーションに関して必要とされる知識を網羅しつつも簡潔にまとめられています。
XSSSQLインジェクションなど、個別の攻撃方法や対策についてはこれまでも多くの書籍あるいはWeb上のコンテンツとしてまとめられていますが、そこに限らず「パスワードリマインダはどうあるべきか」「Webサーバの運用上、どのような点に注意すべきか」など、必要にして最小の情報が高い密度でまとめられているのが本書の最大の特徴だと思います。