gpt4 book ai didi

java - Spring 中的 SimpleJdbcTemplate 对 SQL 注入(inject)安全吗?

转载 作者:搜寻专家 更新时间:2023-11-01 01:57:52 24 4
gpt4 key购买 nike

我意识到可以将手动构造的字符串传递给易受攻击的execute(String)。但是,我对使用 MapSqlParameterSource 或其他公开方法之一(例如以下示例)将参数传递给查询的位置感兴趣。深入研究源代码,它似乎在每一个中都使用了准备好的语句,所以我认为注入(inject)是不可能的。不过,我不是安全专家,所以只是想确认一下。

示例 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));

最佳答案

是的,上面的代码是安全的,不会被注入(inject)——它使用了参数绑定(bind)。

关于java - Spring 中的 SimpleJdbcTemplate 对 SQL 注入(inject)安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4007846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com