平成22年度 高度共通 午前I(PM試験) 問15
SQLインジェクションの説明はどれか。
- ア Webアプリケーションに悪意のある入力データを与えてデータベースの問合せや操作を行う命令文を組み立てて,データを改ざんしたり不正に情報取得したりする攻撃
- イ 悪意のあるスクリプトが埋め込まれたWebページを訪問者に閲覧させて,別のWebサイトで,その訪問者が意図しない操作を行わせる攻撃
- ウ 市販されているデータベース管理システムの脆弱性を利用して,宿主となるデータベースサーバを探して自己伝染を繰り返し,インターネットのトラフィックを急増させる攻撃
- エ 訪問者の入力データをそのまま画面に表示するWebサイトに対して,悪意のあるスクリプトを埋め込んだ入力データを送り,訪問者のブラウザで実行させる攻撃
解答・解説を見る
正解:ア
AI解説
SQLインジェクションは、Webアプリケーションの入力欄に悪意のあるSQL断片を与え、アプリが組み立てるSQL文を改変してデータベースを不正に操作(改ざん・情報取得)する攻撃である。「入力データでSQL命令文を組み立てさせる」「データベースを直接操作する」が識別キーワードである。対策はプレースホルダ(バインド機構)やエスケープ処理である。 ア: 正しい。悪意のある入力でデータベースへの問合せ・操作命令文を組み立てさせ、データの改ざんや不正取得を行うSQLインジェクションの説明である。 イ: 誤り。閲覧者に意図しない操作を別サイトで行わせるのはCSRF(クロスサイトリクエストフォージェリ)の説明である。 ウ: 誤り。DBMSの脆弱性を利用して自己伝染を繰り返しトラフィックを急増させるのはワーム(例:SQL Slammer)の説明である。 エ: 誤り。入力をそのまま表示するサイトにスクリプトを埋め込み訪問者のブラウザで実行させるのはXSS(クロスサイトスクリプティング)の説明である。 💡 「DBを操作=SQLインジェクション」「訪問者のブラウザでスクリプト実行=XSS」「利用者に意図しないリクエストを送らせる=CSRF」と、攻撃の到達点(DBかブラウザかサーバへのリクエストか)で3つを判別する。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。