ISBN 9784797393163
体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 : 脆弱性が生まれる原理と対策の実践
概要
Webの脆弱性が生まれる原理を理解し安全に実装する
想定読者
PHPなどサーバーサイド言語でCRUDアプリを書いた経験があり、XSS・SQLインジェクション・CSRFといった脆弱性の発生原理と対策を体系的に学び直したいWebアプリケーション開発者・セキュリティ担当者。
こんな人には向いていない
- プログラミング未経験で、まずWebアプリの作り方そのものを学びたい初学者には前提が重く、別の入門書から入るのが向いています
- 個別の脆弱性に対するチートシート的な対策一覧だけを手早く知りたい人には、原理から積み上げる構成が冗長に感じられることがあります
- すでに脆弱性診断を業務で日常的に行っている上級実務者には、診断入門の章など一部が既知の内容になりがちです
読了後にできるようになること
- XSS・SQLインジェクション・CSRFが発生するメカニズムをコードレベルで説明できるようになる
- OWASP Top 10(2017)の各リスクに対して具体的な対処コードを書けるようになる
- HTTPとブラウザの仕様に起因するセッション管理の脆弱性と、その設計上の回避策を理解できる
- XXEや安全でないデシリアライゼーションなど比較的新しい攻撃パターンへの対応を実装できる
- 脆弱性診断の基本的な手順とツールの使い方を習得できる
- Web API・JavaScript固有のセキュリティリスク(CORS設定ミス・DOM XSSなど)を識別できる
ハイライト
- Webアプリケーションにはなぜ脆弱性が生まれるのか。脆弱性を解消するにはどうプログラミングすればよいか。PHPサンプルへの攻撃を通して脆弱性が生まれる原理と具体的な対処方法が学べる。(本書の方法論(攻撃を実際に試してから対策を学ぶ)が最も端的に表れている箇所)
- 日本中の現場で支持されたベストセラーが、最新環境にあわせて全面刷新+大増ページ。OWASP Top 10 - 2017対応で、Web APIやJavaScript、XXEなどの解説を新設。(第2版で何が増補されたかを示し、旧版既読者の買い替え判断を支援する箇所)
編集メモ
Webアプリケーションセキュリティの定番として日本の開発現場で長く支持されてきた一冊で、OWASP Top 10 - 2017対応の第2版として全面刷新されている。
読む前に押さえておきたいこと
- HTMLフォームとHTTPリクエスト/レスポンスの基本的な読み書き
- PHPまたは任意のサーバーサイド言語でCRUDアプリを一度でも作った経験
- CookieとセッションIDの基本的な概念(一度読んだことがある程度でよい)
学習のコツ
- 前半でHTTPとブラウザの基礎動作を丁寧に押さえてから攻撃の解説へ進みます。この基礎部分を飛ばすと「なぜそれが脆弱性になるのか」の理解が浅くなるため、急がず読むのがおすすめです。
- PHPサンプルは言語を問わず原理を示すための媒体として読みます。Java・Node.jsなど別言語の開発者も、同じ原理が自分の言語に当てはまるかを都度考えながら読むと汎用性が高まります。
- 実習環境を使い、実際に攻撃を試みてから対策コードを読む順番が理解の定着に効果的です。動くまで攻撃できた体験が、対策の必要性を腹落ちさせてくれます。
- 脆弱性診断を扱う部分は開発者側にも有用です。自分のアプリがどんな観点で診断されるかを知ると、コードレビューやPR時のセキュリティチェックリストとして活用できます。
出版社による内容紹介
日本中の現場で支持されたベストセラーが、最新環境にあわせて全面刷新+大増ページ! Webアプリケーションにはなぜ脆弱性が生まれるのか? 脆弱性を解消するにはどうプログラミングすればよいか? PHPサンプルへの攻撃を通して脆弱性が生まれる原理と具体的な対処方法が学べる! Webアプリ開発者の必読書、待望の改訂版! OWASP Top 10 - 2017対応 <主な改訂内容> ・HTML5の普及に対応してWeb APIやJavaScriptに関する解説を新設 ・OWASP Top 10 - 2017に対応して、XXEや安全でないデシリアライゼーションなどを解説 ・脆弱性診断に対する関心が高まっていることから、脆弱性診断の入門の章を親設 ・IE7のサポート終了など現在のソフトウェアの状況に対応 ・実習環境をWindowsに加えてMacにも対応
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。