対象試験と出題頻度

詳細をクリックして確認
対象試験:
ITパスポート
情報セキュリティマネジメント
基本情報技術者
応用情報技術者
出題頻度:
★★★★★
ランクS(必須・超頻出)

用語の定義

SQLインジェクションとは、一言で言うと「Webサイトの入力欄に不正なSQL文を紛れ込ませて、データベースを不正に操作する攻撃」のことです。

イメージとしては、「アンケート用紙の名前欄に『全員の回答用紙を見せて』という命令文を書いて、本来見られないはずの情報を引き出す」ようなものです。
Webアプリケーションが入力値を適切にチェックしていない脆弱性を突いて、攻撃者がデータベースに直接命令を送り込む手法です。

解説

SQLインジェクションは、Webアプリケーションのセキュリティ上最も危険な脆弱性の一つです。SQL(Structured Query Language)はデータベースを操作するための言語で、攻撃者はこのSQL文を入力フォームなどに「注入(Injection)」することで、本来アクセスできないデータの閲覧、改ざん、削除などを行います。

  • 情報漏えいのリスク:顧客の個人情報、クレジットカード情報、パスワードなどの機密データが大量に流出する可能性があります。
  • データ改ざん・削除:データベース内のデータを書き換えたり、テーブルごと削除したりすることも可能です。
  • 認証回避:ログイン画面でSQLインジェクションを悪用し、パスワードを知らなくても管理者としてログインできてしまうケースもあります。

SQLインジェクションによる被害は後を絶たず、過去には大手企業や官公庁でも数十万〜数百万件規模の個人情報漏えい事件が発生しています。OWASP(Open Web Application Security Project)が発表する「OWASP Top 10」でも常に上位にランクインする、極めて重要な脅威です。

具体的な活用例・対策

SQLインジェクション対策は、Webアプリケーション開発において必須のセキュリティ対策です。

  • プレースホルダ(バインド機構)の使用: SQL文に直接ユーザー入力を埋め込まず、パラメータとして安全に渡す仕組みです。最も効果的な対策として推奨されています。
  • エスケープ処理: 入力値に含まれる特殊文字(シングルクォートなど)を無害化し、SQL文として解釈されないようにします。
  • 入力値の検証(バリデーション): 入力値が想定された形式(数値のみ、特定の文字列パターンなど)かどうかをチェックします。
  • WAF(Web Application Firewall): 不正なリクエストパターンを検知・遮断するセキュリティ製品を導入します。
  • 最小権限の原則: データベースへの接続アカウントに必要最小限の権限のみを付与し、被害を最小化します。

試験ではこう出る!

ITパスポート、情報セキュリティマネジメント、基本情報技術者、応用情報技術者のすべてで頻出です。以下のキーワードとセットで覚えましょう。

【重要キーワード】

  • プレースホルダ(バインド機構)
  • エスケープ処理
  • 入力値検証(バリデーション)
  • WAF(Web Application Firewall)
  • OWASP Top 10

試験問題で「Webアプリケーションの入力フォームに悪意のあるSQL文を入力してデータベースを不正に操作する」「プレースホルダを使用することで防げる攻撃」といった記述があれば、それは「SQLインジェクション」に関する記述です。


【確認テスト】理解度チェック

ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。

Q. SQLインジェクションに関する説明として、最も適切なものはどれでしょうか?

  • A. Webページに悪意のあるスクリプトを埋め込み、閲覧者のブラウザ上で実行させる攻撃
  • B. Webアプリの入力欄に不正なSQL文を挿入し、データベースを不正に操作する攻撃
  • C. 大量のリクエストを送りつけ、サーバーを過負荷状態にしてサービスを停止させる攻撃

正解と解説を見る

正解:B

解説:
SQLインジェクションは、Webアプリケーションの入力フォームなどに不正なSQL文を挿入(注入)し、データベースを不正に操作する攻撃手法です。対策としてはプレースホルダ(バインド機構)の使用やエスケープ処理が有効です。
選択肢Aは「クロスサイトスクリプティング(XSS)」の説明です。選択肢Cは「DoS攻撃/DDoS攻撃」の説明であり、いずれもSQLインジェクションとは異なる攻撃手法です。