SQLインジェクションとは?えすきゅーえるいんじぇくしょん
SQLインジェクションとは、入力欄やURLのパラメータにSQL文の断片を紛れ込ませ、開発者が意図しない問い合わせをデータベースに実行させる攻撃。認証の回避、個人情報の一括抜き取り、データの改ざんや削除まで起こり得る。原因は攻撃者側の技巧ではなく、アプリケーション側の作りにある。
最終更新:2026-10-06
この語が出る過去問を解く →背景
Webアプリは長らく、利用者が入力した文字列をつなぎ合わせてSQL文を組み立てる作りが一般的だった。データと命令が同じ1本の文字列に同居するため、入力側に引用符や区切り記号を書かれると、それが命令の一部として解釈されてしまう。この構造的な弱点は20年以上前から知られながら再発が絶えない。管理側の読者には、委託した開発物にこの対策が入っているかを契約と検収で確かめる責任がある。
具体例
IPAの「安全なウェブサイトの作り方」は、対策の第一にプレースホルダを用いたバインド機構の利用を挙げ、文字列連結でSQL文を組み立てないよう求めている。すぐに改修できない場合の緩和策としてWAF(Web Application Firewall)の導入も選べるが、これは時間を稼ぐ応急処置で根治ではない。
試験での引っ掛け
対策を「入力値のチェック(サニタイジング)」だけで答えないこと。本命はプレースホルダによるバインド機構で、検証やWAFは補助にとどまる。またクロスサイトスクリプティングと混同しやすいが、被害の届く先が違い、こちらはサーバ側のデータベース、XSSは閲覧者のブラウザで実行される。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:平成28年度 春期 情報セキュリティマネジメント試験 午前 問13(IPA)
クライアントとWebサーバの間において、クライアントからWebサーバに送信されたデータを検査して、SQLインジェクションなどの攻撃を遮断するためのものはどれか。
正解:WAF
要点:WAFはHTTPの中身を検査してWebアプリへの攻撃を遮断する
WAF(Web Application Firewall)は、HTTPリクエストの中身を解析し、SQLインジェクションやクロスサイトスクリプティングなど、Webアプリケーションの脆弱性を突く攻撃パターンを検出して遮断する。通常のファイアウォールが見ないアプリケーション層のデータを検査する点が特徴である。
出典:平成30年度 春期 情報セキュリティマネジメント試験 午前 問12(IPA)解説で登場
WAFの説明はどれか。
正解:Webサイトに対するアクセス内容を監視し,攻撃とみなされるパターンを検知したときに当該アクセスを遮断する。
要点:WAFはHTTPの中身を見てアプリ層の攻撃を遮断する
WAFはWebアプリケーションへのHTTP通信の内容を検査し、SQLインジェクションやクロスサイトスクリプティングなどの攻撃に特徴的なパターンを検知したときに、その通信を遮断または無害化する仕組みである。ネットワーク層のポート単位で制御するファイアウォールでは防げない、アプリケーション層の攻撃に対処できる点が特徴である。
出典:令和5年度 公開問題 情報セキュリティマネジメント試験 科目A・B 問7(IPA)
Webアプリケーションにおけるセキュリティ上の脅威とその対策に関する記述のうち,適切なものはどれか。
正解:SQLインジェクションを防ぐために,Webアプリケーション内でデータベースへの問合せを作成する際にプレースホルダを使用する。
要点:SQLインジェクション対策の基本はプレースホルダの利用
SQLインジェクションは、入力値がSQL文の一部として解釈されてしまうことで起こります。プレースホルダを使って値をパラメータとして渡せば、入力内容がSQLの構文として扱われなくなるため、根本的な対策になります。脅威と対策の対応を取り違えないことがこの問題の要点です。
出典・参考
公式シラバスの1 技術要素 > 1 情報セキュリティ > サイバー攻撃手法に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。