Java 在下面的查询中是否可以进行SQL注入

Java 在下面的查询中是否可以进行SQL注入,java,sql,oracle,code-injection,Java,Sql,Oracle,Code Injection,因此,我正在检查一些代码,并将以下查询标记为可注入SQL "select"+seqName+".NEXTVAL from DUAL;" 是的,绝对是。这基本上是SQL注入漏洞的典型示例 如果seqName类似于“*来自用户密码;-”选择将查询seqName中使用的任何表格 当然,如果seqName来自安全源,例如程序中的一些硬编码列表,则这可能不适用。为了避免SQL注入,您需要先断言字符串的值,然后再将其连接到语句中,您可以使用dbms\u assert子程序之一执行此操作,例如,DBMS\u

因此,我正在检查一些代码,并将以下查询标记为可注入SQL

"select"+seqName+".NEXTVAL from DUAL;"

是的,绝对是。这基本上是SQL注入漏洞的典型示例

如果
seqName
类似于
“*来自用户密码;-”
选择将查询
seqName
中使用的任何表格


当然,如果
seqName
来自安全源,例如程序中的一些硬编码列表,则这可能不适用。

为了避免SQL注入,您需要先断言字符串的值,然后再将其连接到语句中,您可以使用
dbms\u assert
子程序之一执行此操作,例如,
DBMS\u ASSERT.SQL\u OBJECT\u NAME

如果您提供了更多的代码,我们将更容易判断seqName的来源。
seqName=“*from DUAL;”--“
是一种SQL注入。因此,如果
seqName
来自某个外部源,那么SQL注入是可能的。使用s代替…@deHaar PreparedStatements无助于粘入列名。