情報処理安全確保支援士試験の公開問題
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による補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。