Appscan源代码版 - SQL注入

时间:2015-07-08 12:57:17

标签: java sql-injection owasp esapi secure-coding

我正在使用Appscan源代码进行Java安全编码。它在我的应用程序中报告SQL注入。问题是我们在代码中动态生成查询,因此我无法使用预准备语句。相反,我需要我们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()

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

你应该做的是

final String s = "SELECT name FROM users WHERE id = ?"
statement = connection.prepareStatement(s);
statement.setString(1, userId);