基本情報技術者試験 - 令和4年12月修了 - 問41
SQLインジェクション攻撃による被害を防ぐ方法はどれか。
| ア | 入力された文字が,データベースへの問合せや操作において,特別な意味をもつ文字として解釈されないようにする。 |
|---|---|
| イ | 入力にHTMLタグが含まれていたら,HTMLタグとして解釈されない他の文字列に置き換える。 |
| ウ | 入力に上位ディレクトリを指定する文字列(../)が含まれているときは受け付けない。 |
| エ | 入力の全体の長さが制限を超えているときは受け付けない。 |
答え : ア
分野 : テクノロジ系 › 技術要素 › セキュリティ › 情報セキュリティ対策
解説 :
「SQLインジェクション攻撃」とは,Webアプリケーションの入力フォームなどに,データベースへの命令文(SQL文)の一部として解釈されるような特殊な文字列を入力することによって,本来意図されていないデータベースへの不正な操作を行わせる攻撃手法です。
選択肢「ア」にある通り,入力された文字が,データベースへの問合せや操作において特別な意味を持つ文字(シングルクォートなど)として解釈されないように,適切な処理(エスケープ処理やプレースホルダの使用など)を行うことが,SQLインジェクション対策の基本となります。
「イ」は,入力にHTMLタグが含まれていた場合に,HTMLタグとして解釈されない他の文字列に置き換えるという説明ですが,これはクロスサイトスクリプティング対策についての説明であり,SQLインジェクション対策とは異なります。
「ウ」は,入力に上位ディレクトリを指定する文字列が含まれている場合に受け付けないという説明ですが,これはディレクトリトラバーサル攻撃への対策についての説明です。
「エ」は,入力の全体の長さが制限を超えている場合に受け付けないという説明ですが,これはバッファオーバーフロー対策に近い内容であり,SQLインジェクション対策としては本質的な対策ではありません。
分野 : テクノロジ系 › 技術要素 › セキュリティ › 情報セキュリティ対策
解説 :
「SQLインジェクション攻撃」とは,Webアプリケーションの入力フォームなどに,データベースへの命令文(SQL文)の一部として解釈されるような特殊な文字列を入力することによって,本来意図されていないデータベースへの不正な操作を行わせる攻撃手法です。
選択肢「ア」にある通り,入力された文字が,データベースへの問合せや操作において特別な意味を持つ文字(シングルクォートなど)として解釈されないように,適切な処理(エスケープ処理やプレースホルダの使用など)を行うことが,SQLインジェクション対策の基本となります。
「イ」は,入力にHTMLタグが含まれていた場合に,HTMLタグとして解釈されない他の文字列に置き換えるという説明ですが,これはクロスサイトスクリプティング対策についての説明であり,SQLインジェクション対策とは異なります。
「ウ」は,入力に上位ディレクトリを指定する文字列が含まれている場合に受け付けないという説明ですが,これはディレクトリトラバーサル攻撃への対策についての説明です。
「エ」は,入力の全体の長さが制限を超えている場合に受け付けないという説明ですが,これはバッファオーバーフロー対策に近い内容であり,SQLインジェクション対策としては本質的な対策ではありません。