情報処理安全確保支援士試験の公開問題

2015 春 午前II 問17

このページはIPA Advancedが運営する非公式の学習用ページです。IPAとの提携・公認を示すものではありません。

問題文

SQL インジェクション対策について,Web アプリケーションの実装における対策と Web アプリケーションの実装以外の対策として,ともに適切なものはどれか。

選択肢

  • ア: Web アプリケーションの実装における対策:Web アプリケーション中でシェルを起動しない。 Web アプリケーションの実装以外の対策:chroot 環境で Web サーバを稼働させる。
  • イ: Web アプリケーションの実装における対策:セッション ID を乱数で生成する。 Web アプリケーションの実装以外の対策:TLS によって通信内容を秘匿する。
  • ウ: Web アプリケーションの実装における対策:パス名やファイル名をパラメタとして受け取らないようにする。 Web アプリケーションの実装以外の対策:重要なファイルを公開領域に置かない。
  • エ: Web アプリケーションの実装における対策:プレースホルダを利用する。 Web アプリケーションの実装以外の対策:データベースのアカウントがもつデータベースアクセス権限を必要最小限にする。

解説の要点

添付の解答例では,問17の正解はエ。SQL インジェクションは,入力値がSQL文の構造の一部として解釈され,意図しないデータベース操作を引き起こす攻撃です。プレースホルダを利用して値をバインドすると,SQL文の構造と入力値を分離できる。また,データベースのアクセス権限を必要最小限にすると,不正な操作が行われた場合の被害を限定できる。アは主にOSコマンドの実行やサーバの隔離,イはセッション管理や通信の秘匿,ウはファイルへの不正アクセスや公開による漏えいに関する対策です。

実装内と実装外の対策について、それぞれの作用箇所と防御の仕組みを独立に検討します。

関連する問題一覧

公式出典

訂正・編集方針

解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。

  • 運営・編集方針を読む
  • 関連問題