平成30年度 春期 午前Ⅱ 問17
アプリケーションセキュリティ
SQLインジェクションの問題
SQL インジェクション対策について,Web アプリケーションの実装における対策と,Web アプリケーションの実装以外の対策として,ともに適切なものはどれか。
| Web アプリケーションの実装における対策 | Web アプリケーションの実装以外の対策 | |
|---|---|---|
| ア | Web アプリケーション中でシェルを起動しない。 | chroot 環境で Web サーバを稼働させる。 |
| イ | セッション ID を乱数で生成する。 | TLS によって通信内容を秘匿する。 |
| ウ | パス名やファイル名をパラメタとして受け取らないようにする。 | 重要なファイルを公開領域に置かない。 |
| エ | プレースホルダを利用する。 | データベースのアカウントがもつデータベースアクセス権限を必要最小限にする。 |
- アWeb アプリケーション中でシェルを起動しない。/chroot 環境で Web サーバを稼働させる。
- イセッション ID を乱数で生成する。/TLS によって通信内容を秘匿する。
- ウパス名やファイル名をパラメタとして受け取らないようにする。/重要なファイルを公開領域に置かない。
- エプレースホルダを利用する。/データベースのアカウントがもつデータベースアクセス権限を必要最小限にする。
答えと解説を見る
✓ これが正解エプレースホルダを利用する。/データベースのアカウントがもつデータベースアクセス権限を必要最小限にする。
解説
プレースホルダの利用と、DB アクセス権限の最小化の組です。
SQL インジェクションは、入力された文字列が SQL 文の一部として解釈され、意図しない命令が実行される攻撃です。Web アプリケーションの実装では、プレースホルダを使い、入力値を SQL 文の構造と切り離して渡すのが根本的な対策です。実装以外の対策としては、データベースのアカウントがもつアクセス権限を必要最小限にしておけば、万一攻撃が成功しても被害を小さくできます。表の各行は、それぞれ別の攻撃への対策を組にしたものです。どの攻撃に効く対策かを行ごとに確かめて見分けます。
ほかの選択肢はなぜ違うのか
- アWeb アプリケーション中でシェルを起動…:シェルを起動しないことと chroot 環境で Web サーバを動かすことは、OS コマンドインジェクションへの対策の組です。SQL 文の組み立てには関わらないので、SQL インジェクションは防げません。
- イセッション ID を乱数で生成する。/T…:セッション ID を乱数で作ることと TLS で通信を秘匿することは、セッションハイジャックへの対策です。入力値が SQL 文として解釈される問題には効き目がありません。
- ウパス名やファイル名をパラメタとして受け取…:パス名やファイル名をパラメタで受け取らないことと、重要なファイルを公開領域に置かないことは、ディレクトリトラバーサルへの対策の組で、SQL インジェクションには効きません。
この問題の用語
- プレースホルダ問合せ文の値の部分を、あとから当てはめる形にしておく書き方です。値を文と分けて渡すので、文の使い回しや不正な文の混入防止に役立ちます。
- セッション利用者がつながってから終わるまでの、一続きのやり取りのことです。識別のためのIDが割り当てられ、同じ利用者のやり取りとしてまとめます。
- TLS通信の中身を途中で読まれたり書き換えられたりしないよう、暗号にして届ける取り決め。つないだ相手が本物かも確かめます。
- データベースたくさんのデータを決まった形で貯め、探したり書き換えたりできるようにした仕組み。多くの人が同時に使うことを前提にしています。
- アカウントシステムを使う人ごとに割り当てられる、利用のための資格や識別名です。利用者IDとパスワードなどの組で、本人を見分けて使わせます。
- アクセス権限「アクセス権」と同じ意味です。参照だけができる許可と、書き換えもできる許可のように、種類に分けて示すときによく使われる言い方です。
出典:平成30年度 春期 情報処理安全確保支援士試験 午前Ⅱ 問17
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問17:IEEE 802.1Xの問題(セッション)
- 令和7年度 春期 午前Ⅱ 問6:デジタル証明書に関する記述(TLS)
- 令和7年度 春期 午前Ⅱ 問4:カミンスキー攻撃への対策(プレースホルダ)
- 令和6年度 秋期 午前Ⅱ 問25:業務処理統制に該当するもの(アクセス権限)
- 令和5年度 春期 午前Ⅱ 問17:SQLインジェクションの問題(アカウント)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)