基本情報技術者試験 - 令和6年公開問題 - 問10
SQLインジェクションの対策として,有効なものはどれか。
| ア | URLをWebページに出力するときは,“http://” や “https://” で始まるURLだけを許可する。 |
|---|---|
| イ | 外部からのパラメータでWebサーバ内のファイル名を直接指定しない。 |
| ウ | スタイルシートを任意のWebサイトから取り込めるようにしない。 |
| エ | プレースホルダを使って命令文を組み立てる。 |
答え : エ
分野 : テクノロジ系 › 技術要素 › セキュリティ › セキュリティ実装技術
解説 :
SQLインジェクションの対策として有効なものを選ぶ問題です。「SQLインジェクション」とは,外部から入力された文字列にSQL文の一部として解釈される特殊な記号などを混入させることで,意図しないデータベース操作を引き起こす攻撃です。
この対策として最も有効なのは,プレースホルダを使って命令文の枠組みとデータを明確に分離して組み立てる方法であり,正解は選択肢「エ」です。プレースホルダを使うことで,入力された文字列がSQL文の構造そのものに影響を与えることを防げます。
「ア」はURLの形式チェックについての説明であり,これはオープンリダイレクトなど別の脆弱性への対策にあたります。
「イ」は外部パラメータでファイル名を直接指定させないという対策であり,これはディレクトリトラバーサル攻撃への対策です。
「ウ」はスタイルシートを外部から取り込めないようにする対策であり,これはクロスサイトスクリプティングなどの対策に関連する内容です。
分野 : テクノロジ系 › 技術要素 › セキュリティ › セキュリティ実装技術
解説 :
SQLインジェクションの対策として有効なものを選ぶ問題です。「SQLインジェクション」とは,外部から入力された文字列にSQL文の一部として解釈される特殊な記号などを混入させることで,意図しないデータベース操作を引き起こす攻撃です。
この対策として最も有効なのは,プレースホルダを使って命令文の枠組みとデータを明確に分離して組み立てる方法であり,正解は選択肢「エ」です。プレースホルダを使うことで,入力された文字列がSQL文の構造そのものに影響を与えることを防げます。
「ア」はURLの形式チェックについての説明であり,これはオープンリダイレクトなど別の脆弱性への対策にあたります。
「イ」は外部パラメータでファイル名を直接指定させないという対策であり,これはディレクトリトラバーサル攻撃への対策です。
「ウ」はスタイルシートを外部から取り込めないようにする対策であり,これはクロスサイトスクリプティングなどの対策に関連する内容です。