爲了得到一些數據,我創建一個SQL查詢:)
當然還有一些過濾和訂購零件。防止在Oracle SQL注入「排序依據」部分
爲了讓我用「是NamedParameterJdbcTemplate」,當我需要的東西添加到「哪裏」的一部分,我用的參數映射,以防止注射的結果。
但「按訂單」的部分是不同的,因爲沒有自動轉義(和它的SQL的一部分)。該訂單部分有時會填充來自用戶的數據(直接),有時會從內部代碼中添加一些額外的排序參數。有一個問題:有時這種排序字段不僅包含列名,而且還包含sql語句。
現在對於排序每個參數被替換一些字符(如「),以空字符串手動逃過一劫,但我們對我們的代碼設置一些參數是有點複雜,通過這一規則。
當您使用jdbc模板時,在查詢的排序部分防止sql注入的最佳方法是什麼?
+1關懷:) – RedFilter 2012-01-30 13:23:15
可能使用'PreparedStatement'? – Romain 2012-01-30 13:25:30
我不知道jdbc,但可以在Oracle中的'order by'中使用綁定變量。 – Ben 2012-01-30 13:33:11