![](/img/trans.png)
[英]Which one is more safe from SQL injection-NamedParameterJdbcTemplate or SimpleJdbcTemplate?
[英]Is the SimpleJdbcTemplate in Spring safe from SQL Injection?
我意識到可以將手動構造的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));
是的,上面的代碼可以安全注入-它使用參數綁定。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.