基本情報技術者試験の令和6年度の公開問題を解いてみよう。
今回のテーマは、「SQL インジェクション」である。
問10 SQL インジェクションの対策として,有効なものはどれか。
ア URL をWeb ページに出力するときは,“http://”や“https://”で始まるURL だけを許可する。
イ 外部からのパラメータでWeb サーバ内のファイル名を直接指定しない。
ウ スタイルシートを任意のWeb サイトから取り込めるようにしない。
エ プレースホルダを使って命令文を組み立てる。
正解:エ
データベースと連携したウェブアプリケーションの多くは、利用者からの入力情報を基にSQL文(データベースへの命令文)を組み立てています。ここで、SQL文の組み立て方法に問題がある場合、攻撃によってデータベースの不正利用をまねく可能性があります。このような問題を「SQLインジェクションの脆弱性」と呼び、問題を悪用した攻撃を、「SQLインジェクション攻撃」と呼びます。
情報処理推進機構(IPA)のWebサイトより抜粋
ア 誤り。
クロスサイトスクリプティングの対策に関する記述である。
ウェブアプリケーションの中には、検索のキーワードの表示画面や個人情報登録時の確認画面、掲示板、ウェブのログ統計画面等、利用者からの入力内容やHTTPヘッダの情報を処理し、ウェブページとして出力するものがあります。ここで、ウェブページへの出力処理に問題がある場合、そのウェブページにスクリプト等を埋め込まれてしまいます。この問題を「クロスサイト・スクリプティングの脆弱性」と呼び、この問題を悪用した攻撃手法を、「クロスサイト・スクリプティング攻撃」と呼びます。クロスサイト・スクリプティング攻撃の影響は、ウェブサイト自体に対してではなく、そのウェブサイトのページを閲覧している利用者に及びます。
情報処理推進機構(IPA)のWebサイトより抜粋
イ 誤り。
ディレクトリトラバーサル攻撃の対策に関する記述である。
ウェブアプリケーションの中には、外部からのパラメータにウェブサーバ内のファイル名を直接指定しているものがあります。このようなウェブアプリケーションでは、ファイル名指定の実装に問題がある場合、攻撃者に任意のファイルを指定され、ウェブアプリケーションが意図しない処理を行ってしまう可能性があります。このような問題の一種を「ディレクトリ・トラバーサルの脆弱性」と呼び、この問題を悪用した攻撃手法の一つに、「ディレクトリ・トラバーサル攻撃」があります。
情報処理推進機構(IPA)のWebサイトより抜粋
ウ 誤り。
クロスサイトスクリプティング攻撃の対策に関する記述である。
エ 正しい。
SQLには通常、プレースホルダを用いてSQL文を組み立てる仕組みがあります。SQL文の雛形の中に変数の場所を示す記号(プレースホルダ)を置いて、後に、そこに実際の値を機械的な処理で割り当てるものです。ウェブアプリケーションで直接、文字列連結処理によってSQL文を組み立てる方法に比べて、プレースホルダでは、機械的な処理でSQL文が組み立てられるので、SQLインジェクションの脆弱性を解消できます。
情報処理推進機構(IPA)のWebサイトより抜粋
(参考)
令和07年 基本情報技術者 パーフェクトラーニング過去問題集 山本 三雄 (著) 技術評論社
コメント