Безопасен ли SimpleJdbcTemplate в Spring от внедрения SQL?

Я понимаю, что можно передать вручную созданную 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));
5
задан McGin 24 October 2010 в 10:21
поделиться