IPA過去問ドリル

平成30年度 秋期 システムアーキテクト試験 午前Ⅱ 問25

テクノロジ/セキュリティ

Web アプリケーションにおけるセキュリティ上の脅威とその対策に関する記述のうち,適切なものはどれか。

出典:平成30年度 秋期 システムアーキテクト試験 午前Ⅱ 問25

正解:イ

解説

SQL インジェクションは,Web アプリケーションがデータベースへの問合せ(SQL 文)を組み立てる際に,利用者からの入力値をそのまま文字列連結してしまうことで発生します。対策として,SQL 文の雛型(プレースホルダ)を用意し,入力値をパラメータとしてバインドするプレースホルダ(バインド機構)を使用することで,入力値が SQL 文の構造に影響を与えないようにすることが有効です。

選択肢ごとの解説

  • 誤り。セッション ID に推測困難な乱数を使用することは,セッションハイジャック(セッションIDの推測・固定化)を防ぐための対策であり,OS コマンドインジェクション対策ではありません。
  • 正しい。SQL インジェクションを防ぐために,データベースへの問合せを作成する際にプレースホルダを使用することは有効な対策です。
  • 誤り。Web サーバ内のファイルを外部から直接参照できないようにすることは,ディレクトリトラバーサルなどのファイル不正参照を防ぐための対策であり,クロスサイトスクリプティング対策の説明としては適切ではありません。
  • 誤り。Web アプリケーションからシェルを起動できないようにすることは,OS コマンドインジェクションを防ぐための対策であり,セッションハイジャック対策ではありません。
システムアーキテクトの過去問を演習モードで解く