📌 結論から理解する
Web脆弱性=「開発者の不注意が招く攻撃の入口」
Webアプリの脆弱性は、ユーザーの入力をそのまま処理してしまうことが主な原因です。
攻撃者はこの「入力の抜け穴」を使って、データベースを操作したり、他のユーザーを罠にかけたりします。
SG試験の午後問題でも頻出。XSS・SQLi・CSRFの「何が起きるか」を理解しましょう。
主要なWeb脆弱性の全体像
| 脆弱性 | 攻撃の仕組み | 主な被害 |
|---|---|---|
| SQLインジェクション | DBへの不正なSQL文送信 | 情報漏えい・改ざん・削除 |
| XSS | 悪意あるスクリプトをサイトに埋め込む | クッキー盗用・フィッシング |
| CSRF | ログイン済みユーザーに意図しない操作をさせる | 不正送金・設定変更 |
| OSコマンドインジェクション | OSコマンドを不正に実行 | システム乗っ取り |
| ディレクトリトラバーサル | 「../」で非公開ファイルにアクセス | 設定ファイル漏えい |
共通の対策原則
✅ 入力値の検証(バリデーション)
期待する形式以外は拒否する。数値フィールドに文字は入れさせない。
期待する形式以外は拒否する。数値フィールドに文字は入れさせない。
✅ エスケープ処理
特殊文字(<>&など)を無害な文字列に変換する。スクリプトが実行されなくなる。
特殊文字(<>&など)を無害な文字列に変換する。スクリプトが実行されなくなる。
✅ WAFの導入
既知の攻撃パターンを自動遮断する。
既知の攻撃パターンを自動遮断する。
✅ 最小権限の原則
DBアカウントはSELECTのみ許可(DELETEは禁止)など、必要最小限の権限だけ付与。
DBアカウントはSELECTのみ許可(DELETEは禁止)など、必要最小限の権限だけ付与。
OWASP Top 10
OWASP(Open Web Application Security Project)は、Webセキュリティの非営利団体。
「OWASP Top 10」は最も危険なWeb脆弱性ランキングです。試験でも参照されます。
SQLインジェクション・XSS・認証の不備・安全でない設定などが常に上位に登場します。
セキュアコーディングとは
脆弱性を作り込まないよう、開発段階からセキュリティを意識してコードを書く考え方です。
- 入力値を常に疑う(信頼しない)
- エラーメッセージに詳細情報を出さない
- ライブラリ・フレームワークを最新に保つ
- コードレビューでセキュリティチェック
「セキュアコーディング」「脆弱性の作り込みを防ぐ」という表現が選択肢に出たら選ぶ場面が多い。
🧠 確認クイズ
Q1. 入力値検証(バリデーション)の目的として正しいのは?
Q2. OWASPの説明として正しいのは?
Q3. ディレクトリトラバーサル攻撃の特徴は?