基本情報技術者試験の公開問題を解こう!(令和6年度・科目A)(9)「SQL インジェクション」

スポンサーリンク
IT系

基本情報技術者試験の令和6年度の公開問題を解いてみよう。

今回のテーマは、「SQL インジェクション」である。

問10  SQL インジェクションの対策として,有効なものはどれか。
ア  URL をWeb ページに出力するときは,“http://”や“https://”で始まるURL だけを許可する。
イ  外部からのパラメータでWeb サーバ内のファイル名を直接指定しない。
ウ  スタイルシートを任意のWeb サイトから取り込めるようにしない。
エ  プレースホルダを使って命令文を組み立てる。

正解:エ

データベースと連携したウェブアプリケーションの多くは、利用者からの入力情報を基にSQL文(データベースへの命令文)を組み立てています。ここで、SQL文の組み立て方法に問題がある場合、攻撃によってデータベースの不正利用をまねく可能性があります。このような問題を「SQLインジェクションの脆弱性」と呼び、問題を悪用した攻撃を、「SQLインジェクション攻撃」と呼びます。
情報処理推進機構(IPA)のWebサイトより抜粋

情報処理推進機構(IPA)のWebサイトより

ア 誤り。

クロスサイトスクリプティングの対策に関する記述である。

ウェブアプリケーションの中には、検索のキーワードの表示画面や個人情報登録時の確認画面、掲示板、ウェブのログ統計画面等、利用者からの入力内容やHTTPヘッダの情報を処理し、ウェブページとして出力するものがあります。ここで、ウェブページへの出力処理に問題がある場合、そのウェブページにスクリプト等を埋め込まれてしまいます。この問題を「クロスサイト・スクリプティングの脆弱性」と呼び、この問題を悪用した攻撃手法を、「クロスサイト・スクリプティング攻撃」と呼びます。クロスサイト・スクリプティング攻撃の影響は、ウェブサイト自体に対してではなく、そのウェブサイトのページを閲覧している利用者に及びます。
情報処理推進機構(IPA)のWebサイトより抜粋

情報処理推進機構(IPA)のWebサイトより

イ 誤り。

ディレクトリトラバーサル攻撃の対策に関する記述である。

ウェブアプリケーションの中には、外部からのパラメータにウェブサーバ内のファイル名を直接指定しているものがあります。このようなウェブアプリケーションでは、ファイル名指定の実装に問題がある場合、攻撃者に任意のファイルを指定され、ウェブアプリケーションが意図しない処理を行ってしまう可能性があります。このような問題の一種を「ディレクトリ・トラバーサルの脆弱性」と呼び、この問題を悪用した攻撃手法の一つに、「ディレクトリ・トラバーサル攻撃」があります。
情報処理推進機構(IPA)のWebサイトより抜粋

情報処理推進機構(IPA)のWebサイトより

ウ 誤り。

クロスサイトスクリプティング攻撃の対策に関する記述である。

エ 正しい。

SQLには通常、プレースホルダを用いてSQL文を組み立てる仕組みがあります。SQL文の雛形の中に変数の場所を示す記号(プレースホルダ)を置いて、後に、そこに実際の値を機械的な処理で割り当てるものです。ウェブアプリケーションで直接、文字列連結処理によってSQL文を組み立てる方法に比べて、プレースホルダでは、機械的な処理でSQL文が組み立てられるので、SQLインジェクションの脆弱性を解消できます。
情報処理推進機構(IPA)のWebサイトより抜粋

参考
令和07年 基本情報技術者 パーフェクトラーニング過去問題集 山本 三雄 (著) 技術評論社

コメント

タイトルとURLをコピーしました