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

2013 秋 午前II 問15

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

問題文

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

選択肢

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

解説の要点

添付の解答例では,問15の正解はウ。SQLインジェクションは,入力値がSQL文の構文として解釈され,意図しないデータベース操作が行われる攻撃です。バインド機構を適切に利用すると,SQL文の構造と入力値を分離でき,入力値によってSQL文の構造が変更されることを防げる。また,データベースのアクセス権限を必要最小限にすると,攻撃が成立した場合の被害範囲を抑えられる。アは主にOSコマンドの実行や実行環境の制限,イはセッションIDの推測防止や通信の秘匿,エはファイルへの不正アクセスや公開領域からの漏えいへの対策です。

実装における対策と実装以外の対策を分け、それぞれの仕組みと効果を独立に検討します。

関連する問題一覧

公式出典

訂正・編集方針

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

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