SQLインジェクションとは?
SQLインジェクションとは、入力欄にSQLの断片を紛れ込ませ、データベースへ想定外の命令を実行させる攻撃です。情報の不正取得・改ざん・削除や認証の回避につながります。根本対策はプレースホルダ(バインド機構)を使い、値とSQL文を分離することです。
基本情報技術者試験の過去問では8回出題されています(2016年度〜2025年度)。
えすきゅーえるいんじぇくしょん
SQLインジェクションの意味
入力欄にSQLの断片を紛れ込ませ、データベースへ想定外の命令を実行させる攻撃です。情報の不正取得・改ざん・削除や認証の回避につながります。根本対策はプレースホルダ(バインド機構)を使い、値とSQL文を分離することです。
SQLインジェクションの具体例
ログイン画面のID欄に「' OR '1'='1」を入れると条件が常に真になり、パスワードを知らなくても通過してしまう実装があります。エラーメッセージを詳細に出す設定だと、テーブル構造まで攻撃者に手掛かりを与えます。
SQLインジェクションは試験でどう引っ掛けられる?
対策として「入力文字数を制限する」「クライアント側のJavaScriptで検証する」は不十分です。クライアント検証は迂回できます。またDBの実行アカウント権限を絞るのは被害軽減策であり、根本対策ではありません。
SQLインジェクションと関連する用語
SQLインジェクションが出た過去問
WAFの説明はどれか。
正解:Webサイトに対するアクセス内容を監視し,攻撃とみなされるパターンを検知したときに当該アクセスを遮断する。
要点:WAFはHTTPの内容を検査してWeb攻撃を遮断する
WAF(Web Application Firewall)は、Webアプリケーションへの通信内容を検査し、SQLインジェクションやクロスサイトスクリプティングなど攻撃と判断されるパターンを含むアクセスを遮断する仕組みである。通常のファイアウォールがポート単位で制御するのに対し、HTTPの中身まで見る点が特徴である。
出典:平成28年度 秋期 基本情報技術者試験 午前 問42(IPA)SQLインジェクション攻撃の説明として,適切なものはどれか。
正解:Webアプリケーションのデータ操作言語の呼出し方に不備がある場合に,攻撃者が悪意をもって構成した文字列を入力することによって,データベースのデータの不正な取得,改ざん及び削除をする攻撃
要点:SQLインジェクションは入力値でSQL文を書き換える攻撃
SQLインジェクションは、入力値をそのままSQL文に連結してしまう実装の不備を突く攻撃である。攻撃者が引用符や論理式を含む文字列を送り込むと、開発者の意図しないSQL文が組み立てられ、データの不正取得・改ざん・削除が起きる。対策としてはプレースホルダを用いた文の組立てが基本になる。
出典:平成28年度 春期 基本情報技術者試験 午前 問37(IPA)クライアントとWebサーバの間において,クライアントからWebサーバに送信されたデータを検査して,SQLインジェクションなどの攻撃を遮断するためのものはどれか。
正解:WAF
要点:WAFはHTTPの中身を検査してWeb攻撃を遮断する
WAF(Web Application Firewall)は、HTTPの通信内容そのものを検査し、攻撃に典型的なパターンを含むリクエストを遮断する。パケットヘッダしか見ない従来型ファイアウォールでは防げない、SQLインジェクションやクロスサイトスクリプティングへの対策として位置付けられる。アプリケーション改修が難しい場合の緩和策としても使われる。
出典:平成28年度 春期 基本情報技術者試験 午前 問43(IPA)SQLインジェクション攻撃の説明はどれか。
正解:Webアプリケーションに問題があるとき、悪意のある問合せや操作を行う命令文をWebサイトに入力して、データベースのデータを不正に取得したり改ざんしたりする攻撃
要点:SQLインジェクションは入力経由でDBに不正なSQLを実行させる
SQLインジェクションは、入力値の検証やエスケープが不十分なWebアプリケーションに対し、SQL文として解釈される文字列を送り込み、開発者が意図しない問合せや更新をデータベースに実行させる攻撃である。情報の不正取得、改ざん、削除につながる。プレースホルダ(バインド機構)の利用が根本的な対策となる。
出典:平成29年度 秋期 基本情報技術者試験 午前 問39(IPA)SQLインジェクション攻撃による被害を防ぐ方法はどれか。
正解:入力された文字が、データベースへの問合せや操作において、特別な意味をもつ文字として解釈されないようにする。
要点:SQLインジェクション対策は入力を値としてのみ扱うこと
SQLインジェクションは、入力値に含まれた引用符などの記号がSQL文の一部として解釈されることで、意図しない問合せが実行される攻撃である。対策は、プレースホルダの利用やエスケープ処理によって、入力文字をあくまで値として扱い特別な意味をもたせないことである。
出典:平成30年度 春期 基本情報技術者試験 午前 問41(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。