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