問題
SQLインジェクション攻撃による被害を防ぐ方法はどれか。
選択肢
- 1入力された文字が、データベースの問合せや操作において、特別な意味をもつ文字として解釈されないようにする。
- 2入力に HTML タグが含まれていたら、HTML タグとして解釈されない他の文字列に置き換える。
- 3入力に上位ディレクトリを指定する文字列(../)が含まれているときは受け付けない。
- 4入力の全体の長さが制限を超えているときは受け付けない。
正解
1. 入力された文字が、データベースの問合せや操作において、特別な意味をもつ文字として解釈されないようにする。
詳しい解説を見る解説を閉じる
解説
SQLインジェクションは、利用者の入力値に SQL 文として特別な意味をもつ文字(クォートやセミコロンなど)を混入させ、データベースへの問合せや操作を改ざんする攻撃です。これを防ぐには、入力値が SQL の構文として解釈されないようエスケープ処理やプレースホルダ(バインド機構)を用いるのが基本で、アが正解です。イはクロスサイトスクリプティング、ウはディレクトリトラバーサルへの対策であり、エの長さ制限だけでは SQL インジェクションは防げません。(出典: 平成30年度 春期 基本情報技術者試験 午前 問41)
一問一答
科目A 180問+科目B 60問