過去問解きまくり研究所 ホーム

平成24年度 秋期 午前 問41

セキュリティ

SQLインジェクションの問題

安全な Web アプリケーションの作り方について,攻撃と対策の適切な組合せはどれか。

〔選択肢の組合せ表〕
        | 攻撃                       | 対策
   ア    | SQL インジェクション          | SQL 文の組立てに静的プレースホルダを使用する。
   イ    | クロスサイトスクリプティング     | 任意の外部サイトのスタイルシートを取り込めるようにする。
   ウ    | クロスサイトリクエストフォージェリ | リクエストに GET メソッドを使用する。
   エ    | セッションハイジャック         | 利用者ごとに固定のセッション ID を使用する。
答えと解説を見る

✓ これが正解ア(攻撃 = SQL インジェクション / 対策 = SQL 文の組立てに静的プレースホルダを使用する。)

解説

対策の欄だけを読むと、守りになるのは一つです。

この設問は、攻撃の名前を覚えているかを見ていません。並んでいる四つの攻撃はどれも実在しますから、攻撃名の側では一つも絞れないのです。読むべきなのは対策の欄で、そこに書かれている手当てが本当に守りになっているかを、一つずつ確かめます。正しい組合せは、SQL インジェクションに対して静的プレースホルダを使うものです。SQL インジェクションは、入力欄に SQL の断片を混ぜ込んで文の意味を書き換える攻撃です。静的プレースホルダは、SQL の骨組みを先にデータベース管理システムへ渡して確定させ、値を後から埋める作り方ですので、値としてどんな文字が来ても骨組みのほうは変わりません。混ぜられないように記号を取り除くのではなく、混ざりようのない構造にしてしまうところが要点です。残る三つは、いずれも書かれた手当てが攻撃を止めるのではなく、かえって成立しやすくする向きになっています。どこが逆を向いているかは、選択肢ごとに分けて確かめてください。

ほかの選択肢はなぜ違うのか

この問題の用語

出典:平成24年度 秋期 応用情報技術者試験 午前 問41

同じ用語が出る問題

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)