簡體   English   中英

Spring中的SimpleJdbcTemplate是否可以防止SQL注入?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM