「体系的に学ぶ 安全なWebアプリケーションの作り方」3月1日発売です



去年の5月末に「本を書く」という宣言をしてから8ヶ月以上掛かってしまいましたが、ようやく体系的に学ぶ 安全なWebアプリケーションの作り方が脱稿し、3月1日に発売される運びとなりました。
現時点で一番詳しい本の目次は、出版元のオフィシャルページにありますが、このブログでもおいおい詳しい内容を紹介したいと思います。また別途サポートページを立ち上げる予定です。
本書の目次は以下の通りです。

1章 Webアプリケーションの脆弱性とは

2章 実習環境のセットアップ

3章 Webセキュリティの基礎 〜HTTP、セッション管理、同一生成元ポリシー

4章 Webアプリケーションの機能別に見るセキュリティバグ

5章 代表的なセキュリティ機能

6章 文字コードとセキュリティ

7章 携帯電話向けWebアプリケーションの脆弱性対策

8章 Webサイトの安全性を高めるために

9章 安全なWebアプリケーションのための開発マネジメント

元々「入門的な内容」を書くことになっていたのですが、書き上がったものを振り返ると、開発者視点で基礎から実践までをできるだけ丁寧に説明したつもりですが、必ずしも易しい内容とは言えないように思います。
この性格は、本書での専門用語の使い方に表れていると思います。ネットなどで「入門的な本なのに専門用語だらけで分かりにくい」という批判を目にすることがあります。これはもっともな意見ですが、しかしセキュリティの説明を専門用語を使わないで説明することも難しいと考えました。そこで、セキュリティの専門家のみが使う用語はできるだけ避け、開発者が知っておくべき用語は遠慮なく使うという方針を採用することにしました。その結果、例えば以下の用語は頻繁に登場することになりました。

 最後の同一生成元ポリシーについては、本書では12ページを割いて説明しています。実は、当初目次案では、同一生成元ポリシーを説明する予定はありませんでした。しかし、XSSCSRFの初稿を読んだレビュアー諸氏から、これら攻撃が通常のアクセスと違う理由がわかりにくいという指摘を受け、検討した結果、同一生成元ポリシーの説明からこれらの脆弱性の説明を導く現在の姿になりました。
 このように、レビュアーの皆様には、字句の間違い指摘というレベルを超えて、非常に本質的な「この脆弱性のなりたちは何か」という議論に及ぶこともあり、私自身非常に勉強になりました。深くお礼申し上げるとともに、ここにレビュアーのお名前・ハンドルを公表させていただきます。以下の表記は、公表にあたっての確認をとった形です(50音順、敬称略)。

大崎雅幸、太田良典、かいと(kaito834)、加藤泰文、小邨孝明、坂井隆二、id:s-yo-ko、高木正弘*1、竹迫良範、東内裕二、塙与志夫、日野洋一郎、山崎圭吾、山下太郎、Masahiro Yamada(masa141421356)、山本陽平

みなさまネット上でブログなどを運用されておられますが、ブログURL等の公表の許可まではいただいておりません(拒否されたというわけでもありませんが)ので、氏名もしくはハンドルの公表のみとさせていただきます。
また、はせがわようすけ氏には草稿の一部を読んでいただき、的確なアドバイスをいただきました。さらには、ブログやtwitterのコメントなどの形で非常に多くの方々と議論させていただき、その結果が本書に反映させていただいています。本当にありがとうございました。
(続く)

*1:確認をとった「高」は「はしご高」の方ですが、はてなダイアリーで文字化けを起こすようでこちらの表記を用いました