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