SQLインジェクション・クロスサイトスクリプティング(XSS)とは?
SQLインジェクション・クロスサイトスクリプティング(XSS)とは、Webアプリケーションの脆弱性を突く代表的な攻撃。SQLインジェクションは入力欄に不正なSQL文の断片を注入し、データベースを不正に操作・閲覧する攻撃。XSSは悪意のあるスクリプトを含む文字列をWebページに埋め込ませ、他の利用者のブラウザ上で不正なスクリプトを実行させる攻撃。
基本情報技術者試験の過去問では9回出題されています(2016年度〜2025年度)。
えすきゅーえるいんじぇくしょん・くろすさいとすくりぷてぃんぐ
SQLインジェクション・クロスサイトスクリプティング(XSS)の意味
Webアプリケーションの脆弱性を突く代表的な攻撃。SQLインジェクションは入力欄に不正なSQL文の断片を注入し、データベースを不正に操作・閲覧する攻撃。XSSは悪意のあるスクリプトを含む文字列をWebページに埋め込ませ、他の利用者のブラウザ上で不正なスクリプトを実行させる攻撃。
SQLインジェクション・クロスサイトスクリプティング(XSS)の具体例
検索フォームに「'; DROP TABLE 顧客; --」のような文字列を入力し、想定外のSQL文を実行させて表を削除・改ざんするのがSQLインジェクションの手口。対策としては、入力値をそのままSQL文に組み込まず、プレースホルダを使う「プレースホルダ(バインド機構)」やエスケープ処理が有効。
SQLインジェクション・クロスサイトスクリプティング(XSS)は試験でどう引っ掛けられる?
SQLインジェクション(データベースへの不正操作)とXSS(他の利用者のブラウザでの不正スクリプト実行)は、攻撃の実行場所(サーバ側のDBか、閲覧者側のブラウザか)が異なる点で区別される。
SQLインジェクション・クロスサイトスクリプティング(XSS)と関連する用語
SQLインジェクション・クロスサイトスクリプティング(XSS)が出た過去問
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/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。