SQLとは?えすきゅーえる
SQLとは、関係データベースへの問合せと更新を記述する言語。検索・追加・変更・削除に加え、利用者への権限付与もSQLの命令で指示する。外部からの入力に命令文を紛れ込ませるSQLインジェクションの前提知識として、利用部門の管理者も「データベースは命令文で操作される」ことを押さえておく必要がある。
最終更新:2026-10-06
この語が出る過去問を解く →背景
取り出し方を利用者が手順として書いていた時代は、表の持ち方が変わるたびにプログラムを直さなければならなかった。「どう取り出すか」ではなく「何が欲しいか」を書けば、実際の取り出し方はDBMSが決めるという分担にしたのがSQLである。標準化されて製品をまたいでほぼ同じ書き方が通じる分、攻撃側にとっても定型の攻め手が成立してしまう。sgではインジェクション対策と権限設計の文脈で出る。
具体例
PostgreSQLやMySQLでは、GRANT文で「この表はSELECTのみ」と権限を絞ったアカウントを作れる。集計作業を頼む担当者にこの参照専用アカウントを渡しておけば、作業中に誤って更新や削除の命令を実行してしまっても、データベース側で拒否される。
試験での引っ掛け
SQLはデータベース操作のための言語であって、画面や帳票を作る機能を持つプログラミング言語ではない。SQLインジェクションはSQLそのものの欠陥ではなく、入力値をそのまま命令文へ連結するアプリの作り方の問題で、対策はプレースホルダの利用などアプリ側にある。権限を絞るのは被害を小さくする措置であって根本対策ではない。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:平成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の構文として扱われなくなるため、根本的な対策になります。脅威と対策の対応を取り違えないことがこの問題の要点です。
出典・参考
公式シラバスの4 技術要素 > 3 データ操作 > データ操作に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。