Webアプリケーションの入力フォームに不正な文字列を入力し、背後のデータベースへ想定外の命令を実行させる攻撃を指す用語として、最も適切なものはどれか。
- ①クロスサイトスクリプティング
- ②SQLインジェクション
- ③ディレクトリトラバーサル
- ④OSコマンドインジェクション
答えと解説を見る
SQLインジェクションとは、Webアプリケーションの入力フォームなどに、SQL文の一部として解釈される不正な文字列を注入(インジェクション)し、データベースに開発者の意図しない命令を実行させる攻撃である。個人情報の窃取やデータの改ざん・削除につながるおそれがある。対策としては、プレースホルダを用いたバインド機構(プリペアドステートメント)の利用が有効である。
他の選択肢が不適切な理由
「クロスサイトスクリプティング」はWebページに悪意あるスクリプトを埋め込み、閲覧者のブラウザ上で実行させる攻撃であり、データベースへの命令実行を主目的とするものではない。「ディレクトリトラバーサル」はサーバ上の意図しないファイルへ不正にアクセスする攻撃である。「OSコマンドインジェクション」はデータベースではなくOSのコマンドを不正に実行させる攻撃であり、標的とする対象が異なる。