我正在使用 Appscan 源代码版本进行 Java 安全编码。它在我的应用程序中报告 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()
我该如何解决这个问题?