修了試験 2014-07-27実施分 基本情報技術者試験 問39
SQLインジェクション攻撃を防ぐ方法はどれか。
正答1
解説
正解は1です。 SQLインジェクションは、入力欄にSQLの一部として解釈される文字列を入力し、データベースへの命令を改変する攻撃です。 データの不正な取得や改ざん、削除につながります。 【選択肢別解説】 1:○ 引用符などSQLで特別な意味をもつ文字を、単なる文字として扱うようにします。 エスケープ処理やプレースホルダ(バインド機構)を使えば、入力がSQL文の構造を変えられなくなり、攻撃を防げます。 2:× HTMLタグを無害な文字列に置き換えるのは、クロスサイトスクリプティングの対策です。 SQLの特殊文字への対策にはなりません。 3:× 上位ディレクトリを指す「../」を拒否するのは、ディレクトリトラバーサルの対策です。 SQLインジェクションの対策ではありません。 4:× 入力の長さを制限するのは、主にバッファオーバフローへの対策です。 短い文字列でもSQL文は改変できるので、SQLインジェクションは防げません。 【ポイント】 攻撃と対策の組合せは頻出です。 SQLインジェクションはSQLの特殊文字の無害化、クロスサイトスクリプティングはHTMLの特殊文字のエスケープ、ディレクトリトラバーサルはパス文字列の検査と整理しましょう。まとめて解く
修了試験 2014-07-27実施分を通しで解く(80問)→