IPA公式正解:エ Web アプリケーションプログラムの実装における対策:プレースホルダを利用する。Web アプリケーションプログラムの実装以外の対策:Web アプリケーションプログラムが利用するデータベースのアカウントがもつデータベースアクセス権限を必要最小限にする。
※ 正解はIPA公表の解答です。解説は当サイトが生成AIを用いて作成しています。誤りにお気づきの場合はお問い合わせください。
【解説】正解は選択肢【エ】です。プレースホルダの利用はWebアプリケーションの実装におけるSQLインジェクション対策であり、データベースアカウントの権限最小化は実装以外の運用・環境面での有効な対策です。
【詳細解説】■ 本問の核心・解法のポイント
SQLインジェクションに対する脆弱性対策について、「プログラムの実装(コーディング)レベルの対策」と「実装以外(データベースやインフラ等の設定・運用)の対策」を正しく切り分けられるかが問われます。
・各選択肢の徹底解説:
・ア:シェルを起動しない、chroot環境での稼働は、主にOSコマンドインジェクションやWebサーバが不正アクセスされた際の影響範囲を限定するための対策であり、SQLインジェクションの直接的な対策の組み合わせではありません。
・イ:セッションIDの乱数生成はセッションハイジャック対策、TLSによる通信秘匿は盗聴・改ざん対策であり、SQLインジェクション対策ではありません。
・ウ:パス名やファイル名をパラメータとして受け取らない対策はパストラバーサル対策であり、SQLインジェクション対策ではありません。
・エ:【選択肢エ★】 「プレースホルダ(静的プレースホルダ)の利用」はSQLインジェクションを防ぐためのWebアプリケーションプログラムの実装上の根本的対策です。また、「データベースアカウントのアクセス権限を必要最小限にする」ことは、万が一SQLインジェクションを許した場合の被害を最小限に抑えるための実装以外(データベースの設定・運用)の有効な対策です。これが正しい組み合わせです。
よって正解はエです。