⏱ 7分 ★★★★☆ 頻出:中

Web脆弱性の基礎

SQLi・XSS・CSRFの「なぜ起きるか」を先に理解する

Web脆弱性=「開発者の不注意が招く攻撃の入口」

Webアプリの脆弱性は、ユーザーの入力をそのまま処理してしまうことが主な原因です。

攻撃者はこの「入力の抜け穴」を使って、データベースを操作したり、他のユーザーを罠にかけたりします。

SG試験の午後問題でも頻出。XSS・SQLi・CSRFの「何が起きるか」を理解しましょう。

主要なWeb脆弱性の全体像

脆弱性攻撃の仕組み主な被害
SQLインジェクションDBへの不正なSQL文送信情報漏えい・改ざん・削除
XSS悪意あるスクリプトをサイトに埋め込むクッキー盗用・フィッシング
CSRFログイン済みユーザーに意図しない操作をさせる不正送金・設定変更
OSコマンドインジェクションOSコマンドを不正に実行システム乗っ取り
ディレクトリトラバーサル「../」で非公開ファイルにアクセス設定ファイル漏えい

共通の対策原則

✅ 入力値の検証(バリデーション)
期待する形式以外は拒否する。数値フィールドに文字は入れさせない。
✅ エスケープ処理
特殊文字(<>&など)を無害な文字列に変換する。スクリプトが実行されなくなる。
✅ WAFの導入
既知の攻撃パターンを自動遮断する。
✅ 最小権限の原則
DBアカウントはSELECTのみ許可(DELETEは禁止)など、必要最小限の権限だけ付与。

OWASP Top 10

OWASP(Open Web Application Security Project)は、Webセキュリティの非営利団体。

「OWASP Top 10」は最も危険なWeb脆弱性ランキングです。試験でも参照されます。

SQLインジェクション・XSS・認証の不備・安全でない設定などが常に上位に登場します。

セキュアコーディングとは

脆弱性を作り込まないよう、開発段階からセキュリティを意識してコードを書く考え方です。

「セキュアコーディング」「脆弱性の作り込みを防ぐ」という表現が選択肢に出たら選ぶ場面が多い。
🧠 確認クイズ
Q1. 入力値検証(バリデーション)の目的として正しいのは?
Q2. OWASPの説明として正しいのは?
Q3. ディレクトリトラバーサル攻撃の特徴は?