テクノロジ系セキュリティ
SQLインジェクションとは?
読み方: えすきゅーえるいんじぇくしょん
1行定義
Webアプリの入力フォームに悪意のあるSQL文を挿入し、データベースを不正操作する攻撃手法
詳細解説
SQLインジェクション(SQL Injection)は、WebアプリケーションがユーザーからのInput(検索フォーム・ログインフォーム等)をSQLクエリに直接埋め込む際に適切な検証・エスケープを行わない脆弱性を悪用し、攻撃者が意図したSQL文を挿入(インジェクト)してデータベースを不正操作する攻撃です。攻撃の具体例:ログインフォームのパスワード欄に「`' OR '1'='1`」を入力すると、SQLが「WHERE password='' OR '1'='1'」となり、常に真になってパスワードなしでログインできてしまいます。被害は個人情報の全件漏洩・ユーザーアカウントの乗っ取り・データの改ざん・削除、さらにDBサーバー経由での他システムへの横展開です。2020年代も最もよく悪用されるWeb脆弱性のトップクラスに挙げられ(OWASP Top 10でA03 Injection)、企業の大規模情報漏洩事件の原因として度々報告されます。対策はプリペアドステートメント(パラメータ化クエリ)の使用が最重要(入力値をSQL文字列として解釈させない)、加えてORMの活用・WAFによるフィルタリング・入力値バリデーション・最小権限のDBアカウントです。ITパスポートでは「SQLインジェクションの仕組み」「プリペアドステートメントによる対策」が頻出です。
ITパスポートでの出題ポイント
- 1SQL文を直接入力可能な箇所に悪意のSQL文を挿入
- 2プリペアドステートメントが最重要対策(入力をSQL文と解釈させない)
- 3OWASP Top 10でトップクラスの危険な脆弱性
- 4DB内の個人情報全件漏洩・データ改ざん・削除が被害
関連用語
シラバス 6.5 準拠 / 最終更新: 2026-05-25