使用JTOpen连接到AS / 400时出现SQL注入的风险

时间:2011-03-04 10:04:00

标签: java sql-injection ibm-midrange rpgle jtopen

我们正在使用JTOpen连接到我们的AS / 400计算机,并且我正在努力解决使用此类集成时出现SQL注入漏洞的风险。

请注意,我们只使用API​​的调用程序部分 - 而不是jdbc连接。

我不是RPG程序员,也不了解SQL注入代码的风险如何,也不知道JTOpen API是否会阻止这类攻击。

我在谷歌搜索后发现,当他们使用存储过程时,有可能对RPGLE程序进行SQL注入。 所以我的问题是:这是否可以通过JTOpen api完成。

我们是否需要以编程方式检查所有JTOpen API调用中的SQL注入?

2 个答案:

答案 0 :(得分:1)

如果您不使用JDBC,那么您需要检查SQL注入的唯一原因是您是否在使用JT400在主机上调用的程序中使用动态SQL。

如果主机上运行的程序不使用动态SQL,则根本没有风险。

答案 1 :(得分:1)

我不是java大师,所以我将在这里使用伪代码。

根据我的理解,您可以使用动态SQL,但不要将where语句连接在一起。

所以string = "select * from table where key = " + id完全错了。但是,您可以执行与

类似的操作
string = "select * from table where key = @id";
build connection
add parameter to assign value to @id
execute command

更好的选择是使用存储过程。