Pythonで学ぶ Webアプリのセキュアコーディング 脆弱性の見つけ方・直し方が身につく実践入門
森 祥平
インプレスPythonでWebアプリを開発する若手エンジニアに向けて、脆弱性の見つけ方・直し方を手を動かして学べる実践入門書。SQLインジェクションやXSSなど代表的な攻撃手法と対策を、Python製「やられアプリ」を使って体験的に習得できます。セキュリティの基礎から実務で役立つスキルまで。
書籍情報
著者: 森 祥平
発行日: 2025-11-13
最終更新日: 2025-11-13
バージョン: 1.0.0
ページ数: 528ページ(PDF版換算)ページ
対応フォーマット: PDF, EPUB
出版社: インプレス
著者について
東京都生まれ。電気通信大学情報工学科を卒業後、株式会社インテック(現TIS)に入社。Javaを用いた大規模ECサイトの開発に従事。その後、外資系企業にキャリアを移し、半導体企業では組み込みソフトウェア開発、マルチメディア企業ではデスクトップアプリ販売、Googleではモバイルアプリの監査を担当。2023年よりContrast Security Japan合同会社にてソリューションアーキテクトとして、Webアプリケーションの脆弱性検出ツールIAST(Interactive Application Security Testing)をはじめとする各種ソリューションの普及に努める。2025年より行動的生体AI認証ソリューションを取り扱うBioCatch社において、ソリューションエンジニアとして技術支援を行っている。冬場は岩原及びニセコスキー場でスキー・スノーボードインストラクターを兼務。ビジネス・ブレークスルー大学大学院 MBA首席修了。豪州BOND University MBA(履修済み全コア科目首席)修了
目次
はじめに
サンプルファイル&本書の前提等
目次
Chapter 1 Webアプリケーションの脆弱性の基礎
- Section 1-1 Webアプリケーションの脆弱性とは
- Section 1-2 ライブラリの脆弱性
- column 脆弱性はほったらかしに?
Chapter 2 Pythonサンプル(やられ)アプリのセットアップ
- Section 2-1 セットアップを始める前に
- Section 2-2 GitHubよりサンプルアプリをダウンロード
- Section 2-3 Pythonのインストール
- Section 2-4 やられアプリ(DSCLab)のセットアップ
- Section 2-5 Pythonを書くためのエディタのセットアップ
- column IT人材不足の昨今、Pythonでキャリアアップを目指そう
Chapter 3 Webアプリケーションの基礎
- Section 3-1 Webアプリケーションとは
- Section 3-2 フロントエンドとバックエンド
- Section 3-3 HTTPリクエストとHTTPレスポンス
- Section 3-4 入力値検証とエスケープ処理
- column 脆弱性対策の重要性とDevSecOpsの概念
Chapter 4 SQLインジェクション
- Section 4-1 Webアプリケーションの脆弱性全体像
- Section 4-2 SQLインジェクション
- Section 4-3 NoSQLインジェクション
- Section 4-4 セカンドオーダーSQLインジェクション
- column 手戻りをゼロにする:シフトスマートな開発パイプライン
Chapter 5 クロスサイトスクリプティング(XSS)
- Section 5-1 能動的攻撃と受動的攻撃
- Section 5-2 クッキーとセッション
- Section 5-3 クロスサイトスクリプティングの概要と反射型XSS
- Section 5-4 XSS攻撃の種類:設置型XSSとDOM Based XSS
- column OWASP TOP 10 ~セキュリティの羅針盤~
Chapter 6 その他のインジェクション
- Section 6-1 OS コマンドインジェクション
- Section 6-2 HTTPヘッダインジェクション
- Section 6-3 メールヘッダインジェクション
- Section 6-4 コードインジェクション
- column WAF ~Webアプリケーションの守護神~
Chapter 7 クロスサイトリクエストフォージェリ(CSRF)
- Section 7-1 クロスサイトリクエストフォージェリ(CSRF)
- Section 7-2 クリックジャッキング
- Section 7-3 同一オリジンポリシー(SOP)
- Section 7-4 Cross-Origin Resource Sharing(CORS)
- column WAFをすり抜けるゼロデイ攻撃:Log4jとは
Chapter 8 パストラバーサルとXXE、認証・認可
- 8-1 パストラバーサル
- 8-2 XML外部参照体(XXE)
- 8-3 認証と認可
- column デバッグとペネトレーションテスト
Chapter 9 ライブラリの脆弱性管理
- 9-1 SCAツールによるライブラリ脆弱性管理の基礎
- 9-2 SCAツールが参照する脆弱性情報データベース
- 9-3 SBOM(ソフトウェア部品表)
- column 実は半分以上は使用されていないOSSライブラリ
Chapter 10 代表的なセキュリティテストツール
- 10-1 SASTとDASTと次世代IAST
- 10-2 IAST/SCAツールの活用事例
- column RASPを用いた攻撃ブロックの仕組み