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

2016 秋 午前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文の構造とデータを分離できます。また,データベースアカウントのアクセス権限を必要最小限にすると,不正な操作が生じた場合の被害を限定できます。アは主にシェルやファイルシステム,イはセッションや通信,ウはファイルへのアクセスに関する対策です。

実装内の対策と実装外の対策を分け、それぞれがSQLインジェクションの成立や被害にどう作用するかを検討します。

関連する問題一覧

公式出典

訂正・編集方針

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

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