IPA公式正解:イ SQL インジェクションを防ぐために,Web アプリケーション内でデータベースへの問合せを作成する際にプレースフォルダを使用する。
※ 正解はIPA公表の解答です。解説は当サイトが生成AIを用いて作成しています。誤りにお気づきの場合はお問い合わせください。
【解説】正解は選択肢【イ】です。SQLインジェクションは、入力値にSQL文の構文を混入させて意図しない問い合わせを実行させる攻撃です。これに対抗するため、SQL文の構造をあらかじめ確定させて入力値をリテラルとして安全にバインドするプレースホルダ(バインド機構)を使用することが極めて有効な対策となります。
【詳細解説】■ 本問の核心・解法のポイント
Webアプリケーションにおける代表的な脆弱性(SQLインジェクション、OSコマンドインジェクション、XSS、セッションハイジャック)と、それぞれの直接的かつ根本的な防御策の対応関係を把握しているかが問われます。
・各選択肢の徹底解説:
・ア:誤りです。推測困難な乱数を用いたセッションIDの発行は、「セッションハイジャック(セッション推測攻撃)」に対する対策です。OSコマンドインジェクション対策には、外部プロセスの起動関数を使わないことやパラメタのエスケープ・検証が該当します。
・イ:【選択肢イ★】正しいです。SQLの構文と入力データを完全に分離して解釈させるプレースホルダ(静的プレースホルダ等)の使用は、SQLインジェクションに対する根本的な防止策です。
・ウ:誤りです。外部から直接参照できないようにすることは「ディレクトリトラバーサル」等の対策です。XSS対策には、HTML特殊文字の適切なエスケープ処理(サニタイジング)を行います。
・エ:誤りです。Webアプリケーションからシェル(コマンドライン)を起動できないようにすることは、「OSコマンドインジェクション」に対する対策です。
よって正解はイです。