修了試験 2021-01-24実施分 基本情報技術者試験 問41
SQLインジェクション攻撃による被害を防ぐ方法はどれか。
正答1
解説
正解は1です。 SQLインジェクションは、入力欄にSQL文の一部となる文字列を入れ、データベースに不正な命令を実行させる攻撃です。 対策は、入力値がSQL文の構文として解釈されないようにすることです。 【選択肢別解説】 1:○ 入力された文字が、データベースへの問合せで特別な意味を持つ文字として解釈されないようにするのが、SQLインジェクションの対策です。 具体的にはプレースホルダ(バインド機構)の利用やエスケープ処理を行います。 2:× HTMLタグを無害な文字列に置き換えるのは、クロスサイトスクリプティング(XSS)の対策です。 3:× 上位ディレクトリを指す「../」を含む入力を拒否するのは、ディレクトリトラバーサル攻撃の対策です。 4:× 入力の長さを制限するのは、バッファオーバフロー攻撃などへの対策の一つです。 短い文字列でもSQLインジェクションは成立するので、根本的な対策にはなりません。 【ポイント】 攻撃と対策の組合せは頻出です。 SQLインジェクションはプレースホルダ、XSSはHTMLのエスケープ、ディレクトリトラバーサルはパス名の検査と対応させて覚えます。まとめて解く
修了試験 2021-01-24実施分を通しで解く(80問)→