我意识到有可能将手动构造的String传递给execute(String)
脆弱的。但是,我对您使用MapSqlParameterSource或其他公开的方法之一(如以下示例)将参数传递给查询的位置感兴趣。深入研究源代码,似乎在每一个源代码中都使用了准备好的语句,因此我认为注入是不可能的。但是我不是安全专家,所以只想确认一下。
范例1:
getSimpleJdbcTemplate().queryForObject("SELECT * FROM table WHERE value = ?",
new ObjectMapper(), code);
范例2:
getSimpleJdbcTemplate()
.update(
"insert into table "
+ "(column1, column2, column3, column4, column5) VALUES "
+ "(:column1, :column2, :column3, :column4, :column5)",
new MapSqlParameterSource().addValue("column1",
value1).addValue("column2",
value2).addValue("column3",
value3).addValue("column4",
value4).addValue("column5", value5));
是的,上面的代码可以安全注入-它使用参数绑定。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句