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

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


問題文

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

選択肢

(正解)

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

要点まとめ

  • 結論:SQLインジェクション対策には、実装面でプレースホルダを使い、実装外ではデータベースのアクセス権限を最小限にすることが重要です。
  • 根拠:プレースホルダはSQL文の構造を固定し、外部入力の影響を排除するため、攻撃を防止できます。アクセス権限の最小化は被害拡大を防ぎます。
  • 差がつくポイント:単なる通信暗号化やファイル配置の工夫ではなく、SQL文の安全な組み立てと権限管理に注目することが合格の鍵です。

正解の理由

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

よくある誤解

SQLインジェクション対策は通信の暗号化やファイルの配置だけで十分と誤解されがちですが、これらは攻撃の防止には直接つながりません。
また、セッションIDの管理は認証関連の対策であり、SQLインジェクションとは別の問題です。

解法ステップ

  1. SQLインジェクションの基本的な防御策を理解する(プレースホルダやパラメータ化クエリ)。
  2. 実装以外の対策として、被害を最小限に抑えるための権限管理の重要性を確認する。
  3. 選択肢の中で、これらの対策がセットになっているものを探す。
  4. 他の選択肢がSQLインジェクション対策として不適切な理由を検証する。
  5. 最も適切な組み合わせを選択する。

選択肢別の誤答解説

  • ア:シェル起動禁止やchroot環境はサーバの安全性向上に寄与しますが、SQLインジェクションの直接対策ではありません。
  • イ:セッションIDの乱数生成やTLSは認証や通信の安全性向上策であり、SQLインジェクション対策とは異なります。
  • ウ:パス名やファイル名のパラメタ制限やファイルの配置はファイル操作の安全策であり、SQLインジェクション防止策ではありません。
  • :プレースホルダの利用はSQL文の安全な組み立てを実現し、アクセス権限の最小化は被害拡大防止に有効で、SQLインジェクション対策として最適です。

補足コラム

SQLインジェクションは、ユーザ入力を不適切にSQL文に組み込むことで発生する攻撃です。プレースホルダ(パラメータ化クエリ)を使うことで、入力値がSQL文の構造に影響を与えず、文字列として扱われるため、攻撃を防げます。
また、データベースのアクセス権限を最小限に設定することは、万が一攻撃が成功しても、攻撃者が操作できる範囲を限定し、被害を抑える重要な対策です。

FAQ

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

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

\ せっかくなら /

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

クイズ画面へ遷移する

すぐに利用可能!

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

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