SQLインジェクション対策について、Webアプリケーションプログラムの実装における対策と、Webアプリケーションプログラムの実装以外の対策として、ともに適切なものはどれか。
SQLインジェクションはプレースホルダ+DB権限最小化で防ぐ

| Webアプリケーションプログラムの実装における対策 | Webアプリケーションプログラムの実装以外の対策 | |
|---|---|---|
| ア | Webアプリケーションプログラム中でシェルを起動しない。 | chroot環境でWebサーバを稼働させる。 |
| イ | セッションIDを乱数で生成する。 | TLSによって通信内容を秘匿する。 |
| ウ | パス名やファイル名をパラメタとして受け取らないようにする。 | 重要なファイルを公開領域に置かない。 |
| エ | プレースホルダを利用する。 | Webアプリケーションプログラムが利用するデータベースのアカウントがもつデータベースアクセス権限を必要最小限にする。 |
選択肢
- アWebアプリケーションプログラム中でシェルを起動しない。
- イセッションIDを乱数で生成する。
- ウパス名やファイル名をパラメタとして受け取らないようにする。
- エプレースホルダを利用する。
正解と解説
正解:エ プレースホルダを利用する。
SQLインジェクションはアプリケーションがSQL文を文字列連結で組み立てることに起因するため、実装面の対策はプレースホルダ(バインド機構)を使い、値をSQL文の構造から切り離すことが最も確実である。実装以外の対策としては、アプリケーションが使うデータベースアカウントの権限を必要最小限に絞り、万一侵入されたときの被害範囲を限定する多層防御が有効である。
選択肢ごとの解説
- アシェルを起動しないこととchroot環境での稼働は、OSコマンドインジェクション対策の組合せである。
- イセッションIDの乱数生成とTLSによる秘匿は、セッションハイジャック対策の組合せである。
- ウパス名を受け取らないことと重要ファイルを公開領域に置かないことは、ディレクトリトラバーサル対策の組合せである。
- エ正しい。プレースホルダの利用とデータベースアカウントの最小権限化が、SQLインジェクションの実装対策と実装以外の対策に当たる。
同じ分野の他の問題
- クロスサイトリクエストフォージェリ攻撃の対策として,効果がないものはどれか。2025年度 秋期 午前II 問16
- クリックジャッキング攻撃に有効な対策はどれか。2022年度 秋期 午前II 問11
- WAFにおけるフォールスポジティブに該当するものはどれか。2024年度 秋期 午前II 問12
- Webサーバから送信されるHTTPヘッダーのうち、Webサーバからの応答の内容を、Webブラウザやプロキシサーバなどのキ…2024年度 春期 午前II 問20
- HTTP Strict Transport Security(HSTS)の動作はどれか。2024年度 春期 午前II 問13
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。