基本情報技術者試験 - 令和5年6月修了 - 問33
安全なWebアプリケーションの作り方について,攻撃と対策の適切な組合せはどれか。
| 攻撃 | 対策 | |
| ア | SQLインジェクション | SQL文の組立てに静的プレースホルダを使用する。 |
| イ | クロスサイトスクリプティング | 任意の外部サイトのスタイルシートを取り込めるようにする。 |
| ウ | クロスサイトリクエストフォージェリ | リクエストにGETメソッドを使用する。 |
| エ | セッションハイジャック | 利用者ごとに固定のセッションIDを使用する。 |
答え : ア
分野 : テクノロジ系 › 技術要素 › セキュリティ › セキュリティ実装技術
解説 :
「SQLインジェクション」は,悪意のある入力によってSQL文が不正に組み立てられ,想定外のデータベース操作が行われてしまう攻撃です。この対策としては,SQL文の組み立てにあらかじめ構文を固定した静的プレースホルダを使用し,入力値をパラメータとして安全に扱う方法が有効です。
「イ」はクロスサイトスクリプティングへの対策として,外部サイトのスタイルシートを自由に取り込めるようにするとしていますが,これは逆にセキュリティを弱める行為であり誤りです。
「ウ」はクロスサイトリクエストフォージェリへの対策としてGETメソッドの使用を挙げていますが,実際には推測されやすいGETメソッドの使用はむしろリスクを高めるため,トークンの利用など別の対策が必要です。
「エ」はセッションハイジャック対策として固定のセッションIDを使うとしていますが,固定IDはむしろ攻撃者に悪用されやすいため,セッションIDは適切なタイミングで更新すべきです。
分野 : テクノロジ系 › 技術要素 › セキュリティ › セキュリティ実装技術
解説 :
「SQLインジェクション」は,悪意のある入力によってSQL文が不正に組み立てられ,想定外のデータベース操作が行われてしまう攻撃です。この対策としては,SQL文の組み立てにあらかじめ構文を固定した静的プレースホルダを使用し,入力値をパラメータとして安全に扱う方法が有効です。
「イ」はクロスサイトスクリプティングへの対策として,外部サイトのスタイルシートを自由に取り込めるようにするとしていますが,これは逆にセキュリティを弱める行為であり誤りです。
「ウ」はクロスサイトリクエストフォージェリへの対策としてGETメソッドの使用を挙げていますが,実際には推測されやすいGETメソッドの使用はむしろリスクを高めるため,トークンの利用など別の対策が必要です。
「エ」はセッションハイジャック対策として固定のセッションIDを使うとしていますが,固定IDはむしろ攻撃者に悪用されやすいため,セッションIDは適切なタイミングで更新すべきです。