必ず受かる情報処理技術者試験

当サイトは、情報処理技術者試験に合格するためのWebサイトです。
ITパスポート試験,基本情報技術者,応用情報技術者,高度試験の過去問題と解答及び詳細な解説を掲載しています。
  1. トップページ
  2. 基本情報技術者
  3. 平成25年度春季問題一覧
  4. 平成25年度春季問題40-解答・解説-分析

平成25年度春季問題

問題40

SQLインジェクション攻撃を防ぐ方法はどれか。

入力中の文字がデータベースへの問合せや操作において,特別な意味を持つ文字として解釈されないようにする。
入力にHTMLタグが含まれていたら,HTMLタグとして解釈されない他の文字列に置き換える。
入力に,上位ディレクトリを指定する文字列(../)を含むときには受け付けない。
入力の全体の長さが制限を超えているときは受け付けない。

SQLインジェクション攻撃を防ぐ方法はどれか。

入力中の文字がデータベースへの問合せや操作において,特別な意味を持つ文字として解釈されないようにする。
入力にHTMLタグが含まれていたら,HTMLタグとして解釈されない他の文字列に置き換える。
入力に,上位ディレクトリを指定する文字列(../)を含むときには受け付けない。
入力の全体の長さが制限を超えているときは受け付けない。

解答:ア

<解説>

SQLインジェクションとは、アプリケーションのセキュリティ上の不備を意図的に利用し、アプリケーションが想定しないSQL文を実行させることにより、データベースシステムを不正に操作する攻撃方法のこと。また、その攻撃を可能とする脆弱性のことである。

SQLインジェクションの対応としては、SQL文の組み立てには必ずエスケープ処理を実装する(特別な意味を持つ記号文字が普通の文字として解釈されるように処理する)などの対策が有用である。

入力中の文字がデータベースへの問合せや操作において,特別な意味を持つ文字として解釈されないようにすることでSQLインジェクションを防ぐことができる。
× 入力にHTMLタグが含まれていたら,HTMLタグとして解釈されない他の文字列に置き換えることは悪意のある命令文としてデータベースのデータを改ざんしたり不正取得されることを防ぐ方法である。
× ディレクトリによって不正なSQL文の実行を防げない。
× 入力の長さを制限しても不正なSQL文の実行を防げない。