Bog*_*lea 9 spring sql-injection jdbctemplate
我想知道Spring MVC如何处理SQL注入(以及其他安全问题:XSS,代码[javascript]注入等).我主要谈论的是逃避添加到DB等的值.我似乎无法找到任何答案,因为每次我搜索涉及依赖注入的spring sql注入结果时都会出现.
我的流程如下:从客户端浏览器我发出一个请求,包含一个带有一些查询参数的JSON(不是SQL语句,这太愚蠢了 - 在JS中形成SQL查询).当请求到达控制器中的正确注解的方法,该请求经由@RequestBody使用杰克逊到"请求对象"映射.现在这个对象被发送到DAO,在那里使用JDBC模板我查询db(并使用RowMapper我映射结果).
在DAO我有类似的东西:
public int countAll(RequestObject request) {
String sql = "SELECT count(*) FROM employees WHERE name = '" + request.getName() + "'";
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
int count = jdbcTemplate.queryForInt(sql);
return count;
}
Run Code Online (Sandbox Code Playgroud)
现在这种方法可以安全地从SQL注入?基于非JDBCTemplate的查询是否安全,因为它们正在流经Spring MVC?
我们可以就此进行一些讨论吗?
Mic*_*l W 16
无论何时通过连接构建查询,您都可以对注入攻击进行攻击
正确传递参数:
jdbcTemplate.queryForInt(sql, args, argTypes)
Run Code Online (Sandbox Code Playgroud)
例如:
JdbcTemplate insert = new JdbcTemplate(dataSource);
insert.update("INSERT INTO PERSON (FIRSTNAME, LASTNAME) VALUES(?,?)",
new Object[] { firstName, lastName });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11709 次 |
| 最近记录: |