SQLインジェクション対策について,Webアプリケーションの実装における対策とWebアプリケーションの実装以外の対策として,ともに適切なものはどれか。
プレースホルダとDB権限最小化がSQLi対策の要
| Webアプリケーションの実装における対策 | Webアプリケーションの実装以外の対策 | |
|---|---|---|
| ア | Webアプリケーション中でシェルを起動しない。 | chroot環境でWebサーバを稼働させる。 |
| イ | セッションIDを乱数で生成する。 | TLSによって通信内容を秘匿する。 |
| ウ | パス名やファイル名をパラメタとして受け取らないようにする。 | 重要なファイルを公開領域に置かない。 |
| エ | プレースホルダを利用する。 | データベースのアカウントがもつデータベースアクセス権限を必要最小限にする。 |
選択肢
- アWebアプリケーション中でシェルを起動しない。 / chroot環境でWebサーバを稼働させる。
- イセッションIDを乱数で生成する。 / TLSによって通信内容を秘匿する。
- ウパス名やファイル名をパラメタとして受け取らないようにする。 / 重要なファイルを公開領域に置かない。
- エプレースホルダを利用する。 / データベースのアカウントがもつデータベースアクセス権限を必要最小限にする。
正解と解説
正解:エ プレースホルダを利用する。 / データベースのアカウントがもつデータベースアクセス権限を必要最小限にする。
SQLインジェクションの根本対策は、プレースホルダ(バインド機構)を使ってSQL文の構造と値を分離することです。加えて実装以外の対策として、アプリが使うデータベースアカウントの権限を必要最小限に絞れば、万一侵入されても被害範囲を限定できます。この2つの組合せが適切です。
選択肢ごとの解説
- ア誤り。シェル起動の回避とchrootは、OSコマンドインジェクションへの対策。
- イ誤り。セッションIDの乱数化とTLSは、セッションハイジャックや盗聴への対策。
- ウ誤り。パス名を受け取らない、公開領域に置かないはディレクトリトラバーサル対策。
- エ正しい。プレースホルダによる根本対策と、DB権限の最小化という多層防御の組合せ。
同じ分野の他の問題
- クロスサイトリクエストフォージェリ攻撃の対策として,効果がないものはどれか。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/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。