- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我意识到可以将手动构造的字符串传递给易受攻击的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/
我为我的一个名为 my_schema 的 Oracle 模式创建了一个函数,该函数称为 date2epoch: create or replace function date2epoch(p_ora_
我正在使用 SimpleJdbcTemplate 从数据库中获取记录列表。每条记录对应一个数据模型对象。我在互联网上搜索了很多,但我仍然无法弄清楚如何使用通用行映射器从数据库中获取多行。 假设我需要获
我正在使用 simpleJDBCTemplate 将值插入 postgre 数据库。 String sql "insert into testTable values(:bla, :blah, fun
我使用 SimpleJdbcTemplate 和 MapSqlParameterSource 的方式如下: MapSqlParameterSource parameterSource = new Ma
Spring 框架有两个相似的类:JdbcTemplate 是旧的 Java 1.4 类,而 SimpleJdbcTemplate 是较新的,具有更好的方法。 JdbcTemplate 有一个方法se
我有以下 sql 准备语句: SELECT * FROM video WHERE video_name LIKE ? 我正在使用 spring 和 jdbc。我有一个方法,其中 term 是搜索项,s
对于一个新项目,我们决定使用 Spring MVC 和 JdbcTemplate(特别是 SimpleJdbcTemplate)来持久化域对象。我一直在使用这种方法遇到的一个问题是如何从 SELECT
这是我的问题:在我的 Java 程序中的某个时刻,我使用 Spring 的 SimpleJdbcTemplate 类从数据库中获得了一个(非常)大的事件列表。 List events =
当 SQL 查询的实际结果为 null 时,SimpleJDBCTemplate.queryForInt 会做什么? 特别是,如果我运行 queryForInt("select max(foo) fr
我是 Spring 3.0 的新手。对于 DAO 访问,我选择了 SpringJDBC。 SpringJDBC 提供了 JDBC Template 和 SimpleJDBCTemplate 。哪个最好
我想从我的 simplejdbctemplate 查询表中获取所有行,并希望将它们添加到列表中。最好的方法是什么? 我试过这个: List carbrands = (List) jdbcTemplat
我正在开发一个使用 SimpleJDBCTemplate 作为包装器来进行 JDBC 调用的应用程序。 但是,我选择使用 AbstractDataSource,而不是传统的数据源,这样我就可以从多个数
我是 Spring 的新手,我正在研究 CAS。我需要查询数据库以进行用户身份验证,但我使用 servlet 作为 Controller 。因此我需要知道是否有任何方法可以在该 servlet 中设置
有没有办法使用Spring的SimpleJdbcTemplate获取数据库中所有表名的列表? 如果有任何帮助,正在查询的数据库是 Oracle。谢谢。 最佳答案 Spring 有一个 Database
给定一个扩展 SimpleJdbcDaoSupport 的类,你如何模拟 SimpleJdbcTemplate? public class SimpleJdbcDaoSupportExtension
我目前正在处理的代码中有一个被许多线程使用的单例,除了 TransactionTemplate 和 SimpleJdbcTemplate 的两个字段外没有任何状态,这两个字段在单例函数中用于访问数据库
我正在尝试使用 Spring,并且一直在使用 SimpleJdbcTemplate 来帮助减少需要编写的代码量,但现在遇到一个问题,抛出异常“java.lang.OutOfMemoryError:超出
我正在使用 SimpleJdbcTemplate 和 Spring 3.x。为了获取单个列,我使用下面的代码,它工作正常: public String selectSingleColumn(int d
我意识到可以将手动构造的字符串传递给易受攻击的execute(String)。但是,我对使用 MapSqlParameterSource 或其他公开方法之一(例如以下示例)将参数传递给查询的位置感兴趣
我正在尝试使用面向方面的编程在 spring JdbcTemplate 和 SimpleJdbcTemplate 中记录执行的 SQL 查询。我已复制粘贴此 tutorial 中的代码 切入点定义为
我是一名优秀的程序员,十分优秀!