SQLインジェクション対策

SQLインジェクション攻撃 とは、Webアプリケーションの入力フォームなどに不正なSQL文の断片(インジェクション)を紛れ込ませ、データベースを不正に操作する攻撃です。これを防ぐためには、 入力文字列中の特別な意味を持つ記号(シングルクォーテーション等)を無害な文字に置き換える(エスケープ処理)か、プレースホルダ(バインド機構)を利用する のが根本的な対策です。 ア: 「入力された文字が、データベースへの問合せや操作において、特別な意味をもつ文字として解釈されないようにする」のがエスケープ処理やバインド機構であり、正解です。 イ: HTMLタグを無害化する処理は、クロスサイトスクリプティング(XSS)攻撃を防ぐための対策です。 ウ: 上位ディレクトリ(../ など)の指定を受け付けないようにするのは、ディレクトリトラバーサル攻撃を防ぐための対策です。 エ: 入力の全体の長さを制限するのは、バッファオーバフロー攻撃などを防ぐための対策です。

SQL インジェクション攻撃による被害を防ぐ方法はどれか。

出典基本情報技術者試験 サンプル問題 科目A 問36
ア
入力された文字が、データベースへの問合せや操作において、特別な意味をもつ文字として解釈されないようにする。
イ
入力に HTML タグが含まれていたら、HTML タグとして解釈されない他の文字列に置き換える。
ウ
入力に上位ディレクトリを指定する文字列(../) が含まれているときは受け付けない。
エ
入力の全体の長さが制限を超えているときは受け付けない。