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