代码之家  ›  专栏  ›  技术社区  ›  McGin

Spring中的SimpleJdbcTemplate不受SQL注入的影响吗?

  •  4
  • McGin  · 技术社区  · 14 年前

    我意识到可以将一个手动构造的字符串传递给 execute(String)

    例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));
    
    1 回复  |  直到 14 年前
        1
  •  7
  •   Bozho    14 年前

    是的,上面的代码是安全的,不会被注入-它使用参数绑定。