SQLインジェクションとは?えすきゅーえるいんじぇくしょん
SQLインジェクションとは、利用者の入力欄にSQL文の断片を紛れ込ませ、組み立てられた問合せ文の意味そのものを変えてしまう攻撃。認証の回避、他人のデータの読み出し、テーブルの改ざんや削除まで行える。原因は入力の中身ではなく、値と命令を文字列連結で混ぜているという作り方の側にある。
最終更新:2026-10-07
この語が出る過去問を解く →背景
Webアプリは画面の入力値をSQL文へ埋め込んで組み立てる。文字列として連結する限り、値に含まれる引用符や記号がそのまま命令として解釈され得る。この「値と命令の境界が消える」構造欠陥はOSコマンドインジェクションなどと共通で、午前Iでも根本対策を選ばせる形で繰り返し出題される。
具体例
根本対策はプレースホルダ(バインド機構)で、SQL文の骨格を先に確定させてから値を別枠で渡す。PHPのPDOやJavaのPreparedStatementがその実装にあたり、値に何が来ても命令としては解釈されない。
試験での引っ掛け
「特殊文字を除去する入力チェック」「エラーメッセージを隠す」は補助的な対策にとどまる。WAF(Web Application Firewall)の導入も緩和策で、根本対策はプレースホルダの利用であると押さえる。
関連用語
出た過去問
出典:平成28年度 春期 高度試験 午前Ⅰ 問13(IPA)解説で登場
WAFの説明として,適切なものはどれか。
正解:特徴的なパターンが含まれるかなどWebアプリケーションへの通信内容を検査して,不正な操作を遮断する。
要点:WAFはHTTPの中身を検査してWeb攻撃を遮断する
WAF(Web Application Firewall)はHTTPの通信内容そのものを検査し、SQLインジェクションやクロスサイトスクリプティングに特徴的なパターンを検出して遮断する。IPアドレスやポートで制御する通常のファイアウォールと違い、アプリケーション層のリクエスト内容を見る点が特徴である。
出典:平成29年度 秋期 高度試験 午前Ⅰ 問15(IPA)解説で登場
WAFの説明はどれか。
正解:Webアプリケーションへの攻撃を監視し阻止する。
要点:WAFはアプリケーション層でWeb攻撃を検知・遮断する
WAF(Web Application Firewall)はHTTPリクエストやレスポンスの内容を検査し、SQLインジェクションやクロスサイトスクリプティングなどWebアプリケーションを狙う攻撃を検知して遮断する。通常のファイアウォールがIPアドレスやポートで制御するのに対し、アプリケーション層の中身を見る点が違いである。
出典:平成31年度 春期 高度試験 午前Ⅰ 問15(IPA)解説で登場
WAFの説明はどれか。
正解:Webアプリケーションへの攻撃を検知し、阻止する。
要点:WAFはWebアプリ層の攻撃を通信内容から検知して遮断する
WAF(Web Application Firewall)は、HTTP/HTTPSの通信内容を解析し、SQLインジェクションやクロスサイトスクリプティングなどWebアプリケーション層への攻撃を検知・遮断する仕組みである。パケットのヘッダだけを見る従来型ファイアウォールでは防げないアプリケーション固有の攻撃に対応する点が特徴である。
出典・参考
公式シラバスの3 技術要素 > 1. 情報セキュリティ > (7) 攻撃手法に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。