ISBN 9784295023005

Pythonで学ぶ Webアプリのセキュアコーディング 脆弱性の見つけ方・直し方が身につく実践入門

Pythonで学ぶ Webアプリのセキュアコーディング 脆弱性の見つけ方・直し方が身につく実践入門
著者
森 祥平
出版社
インプレス
刊行
2025-11

概要

Python製Webアプリで脆弱性を再現・検出・修正する実践力を身につける

想定読者

Pythonを使ってWebアプリを開発しているエンジニアで、セキュリティ対策を体系的に学びたい人。ハンズオン形式で手を動かしながらセキュリティを習得したい中級者

こんな人には向いていない

  • セキュリティ専業のペネトレーションテスト担当者(攻撃技法の網羅性よりも防御コーディングの習得に重点が置かれている)
  • PythonやWebアプリ開発の基礎がまだ固まっていない完全初学者(サンプルアプリのセットアップや章構成がある程度の開発経験を前提にしている)
  • 言語非依存の脆弱性理論をまとめて学びたい人(Python固有のコード例と実装を軸に構成されているため、汎用的な概念書を求める場合には他書が補完的)

読了後にできるようになること

  • SQLインジェクション・XSS・XXE・OSコマンドインジェクション・CSRFなどの主要脆弱性がどのようなコードで発生するかを実際に動作する「やられアプリ」で確認できる
  • 各脆弱性の原因コードと修正コードを対比して学ぶことで「なぜ脆弱なのか」「どう直せば安全なのか」を言語化できる
  • パストラバーサル・XXE・認証/認可の不備など見落とされやすい脆弱性カテゴリを体系的に把握できる
  • ライブラリ依存の脆弱性管理(SCA相当の考え方)と、代表的なセキュリティテストツールの使い方を習得できる
  • DockerベースのDSCLabをセットアップし、安全な隔離環境でハンズオンテストを繰り返せる運用スキルが身につく

本書のキー概念(章解説)

  • 第 1 章 Webアプリケーションの脆弱性の基礎 — 脆弱性の分類と考え方を整理する導入章。全体の地図として最初に読む価値がある
  • 第 2 章 Pythonサンプル(やられ)アプリのセットアップ — 以降の演習の土台。Docker環境を整えてからこの章を完了させると後半の学習効率が上がる
  • 第 3 章 Webアプリケーションの基礎 — HTTP・セッション・Cookie の仕組みを攻撃の観点から再確認する章
  • 第 4 章 SQLインジェクション — 最も実務頻度の高い脆弱性。修正前後のコード差分が本書の学習スタイルを理解するのに最適な章
  • 第 5 章 クロスサイトスクリプティング(XSS) — 反射型・格納型の両方を扱い、エスケープ処理の正確な実装まで踏み込んでいる
  • 第 6 章 その他のインジェクション — OSコマンド・HTTPヘッダ・メールヘッダの各インジェクションをまとめて習得できる
  • 第 7 章 クロスサイトリクエストフォージェリ(CSRF) — トークンベースの防御実装を実際のコードで確認できる
  • 第 8 章 パストラバーサルとXXE、認証・認可 — 見落とされやすいファイルパス操作系とXML外部エンティティ攻撃を一章でカバー
  • 第 9 章 ライブラリの脆弱性管理 — 依存パッケージの既知脆弱性を継続的に把握する視点は、開発フロー全体に影響する実践的な内容
  • 第 10 章 代表的なセキュリティテストツール — ZAP等の利用を概観し、自動検出と手動レビューの使い分けを整理する

ハイライト

  • 「なぜ」と「どうすれば」が学べる、"現場で使える"脆弱性対策入門。コードを書くあなたが、安心・安全なセキュリティを支える人になる。(防御側の実装力を育てるという本書の主眼が端的に表れている表現)

外部からの言及

  • 2025年に日本で刊行されたセキュリティ関連書籍のなかで、Python×Webアプリの実践的な脆弱性対策を扱う数少ない入門書として、セキュリティ書籍リストに掲載されている(qiita)

編集メモ

Qiita 言及 1件 / likes 26(書籍リストへの収録のみ)。2025年11月刊行の新刊であり外部評価の蓄積はこれから。Python開発者向けに脆弱性実装演習を提供する実践書として位置づけられる

読む前に押さえておきたいこと

  • PythonでのWebアプリ開発の基礎(Flaskなど軽量フレームワークのルーティングやテンプレートレンダリングの概念)
  • HTTPリクエスト/レスポンスの基本構造(ヘッダ・クッキー・セッションの役割)
  • Dockerの基本操作(コンテナ起動・停止・ログ確認)

学習のコツ

  • 第2章のDSCLabセットアップを早めに完了させることが前提。Docker環境に不慣れな場合は付録Aを先に読むと詰まりにくい
  • 第4章(SQLインジェクション)で「やられコード → 修正コード」のパターンに慣れておくと、以降の章の習得スピードが上がる
  • 第9章(ライブラリ脆弱性管理)は独立して読める内容なので、実務でpip管理の課題を感じている場合は先行して参照してよい
  • 各脆弱性章を読み終えたら、自分の現在のプロジェクトコードに同じパターンが潜んでいないかセルフレビューすると定着が速い
出版社による内容紹介

「なぜ」と「どうすれば」が学べる、“現場で使える”脆弱性対策入門。コードを書くあなたが、安心・安全なセキュリティを支える人になる。SQLインジェクション/XSS/XXE/OSコマンドインジェクション/HTTP・メールヘッダインジェクション/パストラバーサル/CSRF/認証・セッション管理の不備などハンズオンで学べる。

この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。

質問に答えるだけで、
あなたに合う専門書が見つかる

IT・デザイン・士業・医療・経理・教育・研究 ほか、あらゆる分野の専門書と 「読む順序」(学習ロードマップ)を収録。何を選べばいいか分からなくても、 いくつかの質問に答えるだけでたどり着けます。