Java Secure Coding に Appscan ソース版を使用しています。アプリケーションで SQL インジェクションが報告されています。問題は、クエリをコードで動的に生成しているため、準備済みステートメントを使用できないことです。代わりに、 e を使用する必要がありEsapi.encoder().encodeForSql(new OracleCodec(), query)
ます。AppScan は、これを SQL インジェクションの問題を軽減するものとは見なしません。
final String s = "SELECT name FROM users WHERE id = " +
Esapi.encoder().encodeForSql(new OracleCodec(), userId);
statement = connection.prepareStatement(s);
このコードはさらに機能しませんESAPI.encoder()
この問題を解決するにはどうすればよいですか?