修了試験 2017-01-22実施分 基本情報技術者試験 問40
SQLインジェクション攻撃を防ぐ方法はどれか。
正答1
解説
正解は1です。 SQLインジェクション攻撃は、入力欄に引用符などを含む文字列を入れ、アプリケーションが組み立てるSQL文を書き換えて不正な操作をさせる攻撃です。 防ぐには、入力中の文字がSQL文として特別な意味をもたないように処理します。 【選択肢別解説】 1:○ 引用符などの特別な意味をもつ文字をエスケープしたり、プレースホルダ(バインド機構)を使ったりすることで、SQL文の改変を防げます。 2:× HTMLタグを別の文字列に置き換えるのは、クロスサイトスクリプティングへの対策です。 SQL文の改変は防げません。 3:× 上位ディレクトリを指す「../」を受け付けないのは、ディレクトリトラバーサル攻撃への対策です。 4:× 入力の長さを制限しても、短い文字列でSQL文を改変される可能性は残ります。 主にバッファオーバフローなどへの対策です。 【ポイント】 SQLインジェクションの根本的な対策は、SQL文の組立てにプレースホルダを使うことです。 攻撃と対策の組合せは、選択肢を入れ替えて出題されることが多いので対で覚えましょう。まとめて解く
修了試験 2017-01-22実施分を通しで解く(80問)→