SQLインジェクションとは?えすきゅーえるいんじぇくしょん
SQLインジェクションとは、利用者の入力がSQL文の構造の一部として解釈されてしまうことを悪用し、意図しない検索・改ざん・認証の回避を起こす攻撃。防止の要は入力を検査することではなく、プレースホルダとバインド機構によって命令と値を別々に組み立て、入力が構文として読まれる余地をなくすことにある。
最終更新:2026-10-06
この語が出る過去問を解く →背景
SQLは文字列として組み立てられ、データベースへ渡された時点で構文解析される。入力値を文字列連結で埋め込む実装では、値のつもりで渡した引用符や演算子がそのまま構文の一部として解釈され、開発者が意図しない文が完成してしまう。データと命令が同じ経路を通ることが原因で、OSコマンドインジェクションなどとも構造は共通である。応用情報では、なぜ入力チェックが根本対策にならないかまで説明を求められる。
具体例
ログイン画面のIDへ ' OR '1'='1 を入力すると条件が常に真になり、パスワードが合っていなくても認証を通ってしまう。プレースホルダを使い、SQL文の側を先に構文解析させてから ? の位置へ値を束縛すると、入力に引用符が含まれていても文字列リテラルの中身として扱われ、構文へは影響しない。
試験での引っ掛け
「入力値の長さを制限し、記号をブラックリストで除けば防げる」は誤りで、文字コードの解釈差や想定外の記法で回り込まれる。エスケープ処理も、対象を1つ漏らせば破られる点でバインド機構に劣る。WAFは攻撃の兆候を前段で弾く多層防御の一枚であり、根本対策はアプリケーション側で命令と値を分離することにある——ここを取り違えた選択肢が定番である。
関連用語
出た過去問
出典:平成28年度 春期 応用情報技術者試験 午前 問40(IPA)解説で登場
WAFの説明として,適切なものはどれか。
正解:特徴的なパターンが含まれるかなどWebアプリケーションへの通信内容を検査して,不正な操作を遮断する。
要点:WAFは通信内容を検査してWebアプリへの攻撃を遮断する
WAF(Web Application Firewall)は、Webアプリケーションへのやり取りの中身を検査し、攻撃に特徴的なパターンを含む通信を遮断する仕組みである。SQLインジェクションやクロスサイトスクリプティングなど、アプリケーション層の攻撃への対策として使われる。
出典:平成29年度 秋期 応用情報技術者試験 午前 問45(IPA)解説で登場
WAFの説明はどれか。
正解:Webアプリケーションへの攻撃を監視し阻止する。
要点:WAFはWebアプリ層への攻撃を検知し遮断する
WAFはWebアプリケーションの前段に置き、HTTPの通信内容を検査してSQLインジェクションやクロスサイトスクリプティングなど、アプリケーション層を狙う攻撃を検知・遮断する仕組みである。ネットワーク層で通信を制御するファイアウォールでは防げない攻撃を対象とする。
出典:平成31年度 春期 応用情報技術者試験 午前 問45(IPA)解説で登場
WAFの説明はどれか。
正解:Webアプリケーションへの攻撃を検知し、阻止する。
要点:WAFはHTTPを解析してWebアプリへの攻撃を検知・遮断する
WAF(Web Application Firewall)はHTTPの通信内容を解析し、SQLインジェクションやクロスサイトスクリプティングなどWebアプリケーションの脆弱性を狙う攻撃パターンを検知して遮断する。ネットワーク層で制御するファイアウォールでは防げない、アプリケーション層の攻撃に対応する点が特徴である。
出典:令和6年度 春期 応用情報技術者試験 午前 問41(IPA)解説で登場
出典・参考
公式シラバスの3 技術要素 > 1. 情報セキュリティ > (7) 攻撃手法に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。