戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

情報処理安全確保支援士 2016年 秋期 午前217


問題文

SQLインジェクション対策について、Webアプリケーションの実装における対策とWebアプリケーションの実装以外の対策として、ともに適切なものはどれか。
情報処理安全確保支援士 2016年 秋期 午前2 問17の選択肢の画像

選択肢

(正解)

SQLインジェクション対策について【午前2 解説】

要点まとめ

  • 結論:SQLインジェクション対策には、実装面でプレースホルダを使い、実装以外ではデータベース権限を最小限にすることが有効です。
  • 根拠:プレースホルダはSQL文とデータを分離し、不正なSQL挿入を防止します。権限最小化は万が一の侵害時の被害拡大を防ぎます。
  • 差がつくポイント:単なる通信暗号化やファイル配置の工夫ではなく、SQL文の構造を安全に保つ実装技術と権限管理の組み合わせが重要です。

正解の理由

選択肢「エ」は、Webアプリケーションの実装における対策として「プレースホルダを利用する」ことを挙げています。これはSQLインジェクションの根本的な防止策であり、ユーザ入力をSQL文に直接埋め込まず、パラメータとして扱うことで不正なSQL文の実行を防ぎます。
また、実装以外の対策として「データベースのアカウントがもつアクセス権限を必要最小限にする」ことは、万が一SQLインジェクションが成功しても被害範囲を限定できるため、セキュリティ強化に直結します。
この組み合わせはSQLインジェクション対策として最も効果的かつ実践的な方法です。

よくある誤解

SQLインジェクション対策は通信の暗号化やファイルの配置だけで十分と誤解されがちですが、これらは直接的な防御策ではありません。
また、セッションIDの乱数化は認証強化策であり、SQLインジェクション対策とは異なります。

解法ステップ

  1. SQLインジェクションの基本的な防御策を理解する(ユーザ入力の安全な扱い)。
  2. Webアプリケーションの実装面で有効な技術(プレースホルダの利用)を確認する。
  3. 実装以外の対策として、データベースのアクセス権限管理の重要性を把握する。
  4. 選択肢の内容を比較し、SQLインジェクション対策に直接関連するものを選ぶ。
  5. 「エ」が両面で適切な対策を示していることを確認し、正解とする。

選択肢別の誤答解説

  • ア:Webアプリでシェルを起動しないことやchroot環境はサーバの安全性向上策ですが、SQLインジェクション対策としては不十分です。
  • イ:セッションIDの乱数生成やTLS通信は認証や通信の安全性向上策であり、SQLインジェクションの直接対策ではありません。
  • ウ:パス名やファイル名のパラメタ制限やファイルの公開領域管理はファイル操作の安全策であり、SQLインジェクション対策とは異なります。
  • :プレースホルダ利用によるSQL文の安全化と、データベース権限の最小化はSQLインジェクション対策として最も適切です。

補足コラム

SQLインジェクションは、ユーザ入力を不正にSQL文に組み込む攻撃であり、Webアプリケーションの脆弱性の中でも特に危険度が高いものです。
プレースホルダ(パラメータ化クエリ)は、SQL文の構造とデータを分離し、攻撃者がSQL文を改変できないようにするための標準的な対策です。
また、データベースのアクセス権限を必要最小限に設定することは、万が一の侵害時に被害を限定する重要な防御層となります。

FAQ

Q: プレースホルダを使うとSQLインジェクションは完全に防げますか?
A: ほぼ防げますが、他の脆弱性や設定ミスがないかも併せて確認する必要があります。
Q: なぜデータベースの権限を最小限にする必要があるのですか?
A: 攻撃者が侵入しても操作できる範囲を限定し、被害拡大を防ぐためです。
Q: TLSはSQLインジェクション対策に役立ちますか?
A: TLSは通信の盗聴防止に有効ですが、SQLインジェクションの防止には直接関係しません。

関連キーワード: SQLインジェクション、プレースホルダ、データベース権限管理、Webアプリケーションセキュリティ、パラメータ化クエリ
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

情報処理安全確保支援士
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について