基本情報技術者試験 基本情報技術者試験 令和4年度 科目A サンプル問題 午前 問36: SQL インジェクション攻撃による被害を防ぐ方法はどれか。

基本情報技術者試験 令和4年度 科目A サンプル問題
Q 3636 / 60
SQL インジェクション攻撃による被害を防ぐ方法はどれか。
この問の正解率:64.48%(794件)
この問題の本文・選択肢・正解・解説(展開)

問題本文

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

選択肢

  • .入力された文字が,データベースへの問合せや操作において,特別な意味をもつ文字として解釈されないようにする。
  • .入力にHTMLタグが含まれていたら,HTMLタグとして解釈されない他の文字列に置き換える。
  • .入力に上位ディレクトリを指定する文字列(../)が含まれているときは受け付けない。
  • .入力の全体の長さが制限を超えているときは受け付けない。

正解

. 入力された文字が,データベースへの問合せや操作において,特別な意味をもつ文字として解釈されないようにする。

解説

SQL インジェクション対策の本命は、入力された特殊文字('や;)をリテラルとして扱い、SQL の構文として解釈させない仕組み(プレースホルダ・エスケープ)です。アが正解。

選択肢ごとの解説

  • .特別な意味を持つ文字として解釈させない、SQL インジェクションの最も有効な対策で正解です。
  • .HTML タグの置換は XSS(クロスサイトスクリプティング)対策で、SQL インジェクションとは異なります。
  • .../ の制限はパストラバーサル攻撃対策で、SQL インジェクションとは別です。
  • .入力長制限はバッファオーバーフロー対策に近く、SQL 構文の解釈問題は防げません。

基本情報技術者試験 令和4年度 科目A サンプル問題過去問一覧へ戻る・問36