2011-03-04 106 views
2

我們正在使用JTOpen連接到我們的AS/400機器,並且我正試圖解決使用此類集成時存在SQL注入漏洞的風險。使用JTOpen連接到AS/400時SQL注入風險

請注意,我們只使用API​​的調用程序部分 - 而不是jdbc連接。

我不是RPG程序員,也沒有任何有關如何將SQL注入代碼的風險的知識,也不知道JTOpen API是否會阻止這類攻擊。

經過一番Google搜索,我發現有一點可以在不使用存儲過程的情況下對RPGLE程序進行SQL注入。 所以我的問題是:這是否可以通過JTOpen API來完成。

是否需要以編程方式檢查所有對JTOpen API的調用中的SQL注入?

+0

修復了「SQL注入」的主題行**完全不同於「依賴注入」。 – 2011-03-04 10:10:47

+0

哦,謝謝,我想我的想法是想... – 2011-03-04 10:18:09

回答

1

如果您不使用JDBC,那麼您需要檢查SQL注入的唯一原因是如果您在使用JT400的主機上調用的程序中使用動態SQL。

如果主機上運行的程序不使用動態SQL,那麼根本沒有風險。

+0

謝謝,這是我得出的相同結論。 – 2011-03-07 09:26:39

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 

儘管使用存儲過程會更好。

+0

它的'僞碼'不是'sudo碼'。 :) – Freiheit 2011-03-04 15:22:44

+1

糟糕,我的壞。固定。必須是早上.... – 2011-03-04 15:33:06