首页 文章

Spring中的SimpleJdbcTemplate是否可以安全地从SQL注入?

提问于
浏览
4

我意识到可以将一个手动构造的String传递给易受攻击的 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 回答

  • 7

    是的,上面的代码是安全的注入 - 它使用参数绑定 .

相关问题