平成25年度 春期 基本情報技術者試験 午前 問40
テクノロジ/セキュリティSQL インジェクション攻撃を防ぐ方法はどれか。
出典:平成25年度 春期 基本情報技術者試験 午前 問40
- ア入力中の文字がデータベースへの問合せや操作において,特別な意味をもつ文字として解釈されないようにする。
- イ入力に HTML タグが含まれていたら,HTML タグとして解釈されない他の文字列に置き換える。
- ウ入力に,上位ディレクトリを指定する文字列(../)を含むときは受け付けない。
- エ入力の全体の長さが制限を超えているときは受け付けない。
正解:ア
解説
SQLインジェクション対策の基本は,入力中の文字がSQL文において特別な意味を持つ文字(クォートなど)として解釈されないように,エスケープ処理や機械的な無害化を行うことです。
選択肢ごとの解説
- ア正しい。入力文字がSQL文において特別な意味を持たないように処理することがSQLインジェクション対策の基本です。
- イ誤り。HTMLタグを無害化する対策はクロスサイトスクリプティング(XSS)対策の説明です。
- ウ誤り。上位ディレクトリを指定する文字列(../)を拒否する対策はディレクトリトラバーサル対策の説明です。
- エ誤り。入力の長さを制限する対策はバッファオーバフローなどの対策であり,SQLインジェクション対策そのものではありません。