正解は エ
SQLインジェクション攻撃の対策として適切なものを選ぶ問題です。SQLインジェクションは、Webアプリケーションの入力フィールドに悪意のあるSQL文を埋め込み、データベースを不正操作する攻撃です。例:ログインフォームに「' OR '1'='1」を入力してWHERE句を無効化し不正ログインするなど。プレースホルダ(Prepared Statement)による対策:SQL文の雛形を先にデータベースエンジンに送り、パラメータは後から別途バインドする仕組みです。ユーザー入力はSQL文の「データ」として扱われ、SQL構文の一部として解釈されません。Javaではconn.prepareStatement()でプレースホルダを含むSQL文を作り、setString()で値をバインドします。これによりどんな文字列を入力されてもSQL文の構造が変化しないため、インジェクション攻撃が無効化されます。
SQLインジェクション対策=プレースホルダ(プリペアドステートメント)の使用が最も効果的。入力値をSQL文の「データ」として扱いSQL構文として解釈させない。エスケープ処理も対策の一つだが完全ではない。