徳丸浩さん著「体系的に学ぶ 安全なWebアプリケーションの作り方」

2011年3月1日、徳丸浩さん著「体系的に学ぶ 安全なWebアプリケーションの作り方」が発売されます。幸運なことにこの書籍のレビューアに選ばれ、2010年6月から書籍のレビューに参加させていただきました。様々な立場の方々がレビューに参加しており*1、とても貴重な経験となりました。レビューアであることが公表されたので、レビューの振り返りと書籍の紹介を書いてみます。

レビューについて

レビューは、徳丸さんが書いた原稿をメーリングリストに投稿し、その原稿をレビューアが読んでコメントするといった流れですすみました。レビューにおいては、レビューアによってコメントの観点が異なる点が面白かったです。レビューで挙がったコメントは、「表現も分かりやすさ」はもちろんですが、「技術用語の正しさ」、「サンプルコードのコーディング規則」、「読み手に分かりやすいコードの書き方」、「前提となる知識にこれいらない?」など多岐に渡りました。

僕も気になった箇所はコメントさせていただきましたが、如何せん忘れっぽい性格なので、コメントするために裏付けを取るなどしてました^^; レビューに参加することで改めて Web アプリケーション関連のセキュリティを勉強する機会を得たという感じです*2

「安全なWebアプリケーションの作り方」の内容について

徳丸さん本人が「『基礎的な内容』をみっちり書いた」*3とおっしゃっるように、「安全なWebアプリケーションの作り方」ではWebアプリケーションのセキュリティに関する話題が一通り網羅されていると感じました。この書籍では、携帯電話向け Web サイトや文字コード関連のセキュリティについては、独立した章を設けて具体的に説明しています。

僕が原稿をレビューさせていただいて、いいなと思ったことをまとめてみます。

解説する脆弱性や問題の網羅性

「体系的に学ぶ 安全なWebアプリケーションの作り方」では、「SQL インジェクション」や「クロスサイト・スクリプティング」などの有名な Web アプリケーションの脆弱性だけではなく、以下のような細かな脆弱性や問題についても丁寧に解説しています。僕自身、「ファイルアップロードにまつわる問題」をよく知らなかったので、興味深かったです。脆弱性や問題が網羅されているため、Web アプリケーションの脆弱性のリファレンスとしても活用できる書籍だと思います。

4.7 リダイレクト処理にまつわる脆弱性
4.7.1 オープンリダイレクタ脆弱性
(略)
4.12 ファイルアップロードにまつわる問題
4.13 インクルードにまつわる問題
4.14 evalにまつわる問題
4.15 共有資源に関する問題

ソフトバンク クリエイティブ:体系的に学ぶ 安全なWebアプリケーションの作り方 から抜粋
同一生成元ポリシーやセキュリティ機能の解説

「体系的に学ぶ 安全なWebアプリケーションの作り方」では、ブラウザのセキュリティにおいて重要な「同一生成元ポリシー(Same Origin Policy)」にもページを割いて説明しています。過去に同一生成元ポリシーを解説している Web サイトや書籍を見つけられなかった覚えがあるため、この解説は参考になると思います。また、Web サイトにおける「自動ログイン」や「パスワードリマインダ」なども丁寧に解説されています。

3.2 受動的攻撃と同一生成元ポリシー
(略)
5.1 認証
5.1.1 ログイン機能
5.1.2 総当たり攻撃への対策
(略)
5.2 アカウント管理
5.2.1 ユーザ登録
5.2.2 パスワード変更
(略)

ソフトバンク クリエイティブ:体系的に学ぶ 安全なWebアプリケーションの作り方 から抜粋
開発マネジメントの話題

「体系的に学ぶ 安全なWebアプリケーションの作り方」では、開発マネジメントについても独立した章で解説しています。僕自身が開発に携わっていないからかもしれませんが、この章は興味深かったです。実際にコードを書く開発者だけではなく、開発プロジェクトを管理する立場や Web サイトの企画等に携わる立場の方にも有益な章だと思います。

9章 安全なWebアプリケーションのための開発マネジメント
9.1 開発マネジメントにおけるセキュリティ施策の全体像
9.2 開発体制
(略)
9.3.9 発注者側テスト(検収
9.3.10 運用フェーズの留意点

ソフトバンク クリエイティブ:体系的に学ぶ 安全なWebアプリケーションの作り方 から抜粋

さいごに

レビュー量に圧倒されるときもありましたが、このレビュー活動は貴重な経験となりました。また機会があれば、こういったレビューに参加してみたいです:)

*1:レビューアの方々のお名前は、徳丸さんの2011年2月14日のブログ記事で紹介されています。

*2:時にレビュー原稿の多さにくらっとしたこともありました(笑)。

*3:徳丸さんの2010年12月21日のブログ記事をご参照ください。