| Web アプリケーションプログラムの実装における対策 | Web アプリケーションプログラムの実装以外の対策 | |
|---|---|---|
| ア | Web アプリケーションプログラム中でシェルを起動しない。 | chroot 環境で Web サーバを稼働させる。 |
| イ | セッション ID を乱数で生成する。 | TLS によって通信内容を秘匿する。 |
| ウ | パス名やファイル名をパラメータとして受け取らないようにする。 | 重要なファイルを公開領域に置かない。 |
| エ | プレースホルダを利用する。 | Web アプリケーションプログラムが利用するデータベースのアカウントがもつデータベースアクセス権限を必要最小限にする。 |
情報処理安全確保支援士試験 令和5年度春期 午前Ⅱ 問17「SQL インジェクション対策について,Web アプリケーションプログラムの実装に…」の正解と解説です。情報処理安全確保支援士試験の「SQLインジェクション」分野の過去問で、これまでの受験者の正答率は約0%です。
エ. Web アプリケーションプログラムの実装における対策:プレースホルダを利用する。/実装以外の対策:Web アプリケーションプログラムが利用するデータベースのアカウントがもつデータベースアクセス権限を必要最小限にする。
正答率 0.0%(1人中 0人が正解)
SQLインジェクションの最も確実な対策は、SQL文の構造とデータを分離するプレースホルダ(バインド機構)を使う実装である。加えて、万一悪用された際の被害を抑える実装以外の多層防御として、DB接続アカウントの権限を必要最小限にすることが有効。両者を組み合わせたエが正解。他の選択肢はOSコマンド注入やセッション、ディレクトリトラバーサル対策でありSQLインジェクションの組合せとして不適切。実務では予防と被害局限を併用する。