【問184】ITパスポート 練習問題|SQLインジェクション
情報セキュリティ 問9/25難易度B(標準)
問題文
Webアプリケーションに対するSQLインジェクションの説明として、最も適切なものはどれか。
- 1.入力欄に大量の文字を送り込んでメモリ領域をあふれさせ、任意のコードを実行させる。
- 2.掲示板への書込みに悪意のあるスクリプトを埋め込み、閲覧者の端末上で実行させる。
- 3.Webサーバに短時間で大量の要求を送りつけて処理能力を超えさせ、正規の利用者がサービスを利用できない状態にする。
- 4.入力欄に不正な命令文を送り込んでデータベースを操作させ、情報を盗み出したり改ざんしたりする。
解説
正解は4。SQLインジェクションは、Webアプリケーションの入力欄や画面遷移の引数に、データベース操作言語であるSQLの命令文の断片を送り込み、開発者が想定していない問合せを実行させる攻撃である。会員情報の一覧を不正に取得する、データを改ざん・削除するといった被害につながる。対策は、入力された文字列を命令文の一部として解釈させないようにすること(プレースホルダの利用や入力値の検証)が基本で、WAF(Webアプリケーションファイアウォール)による検知と遮断も併用される。1は誤り。これはバッファオーバフロー攻撃の説明である。2は誤り。これはクロスサイトスクリプティングの説明であり、被害を受けるのはサイトの閲覧者である。3は誤り。これはDoS攻撃の説明である。ITパスポートでは、攻撃の標的がデータベースであることが他の攻撃と識別する決め手になる。