SQL注入哪一个是安全的:NamedParameterJdbcTemplate还是SimpleJdbcTemplate?例如,String sql = insert into db_table (associateid,comment) values(:associateId,:comments);MapString, Object paramMap = ...
SQL注入哪一个是安全的:NamedParameterJdbcTemplate还是SimpleJdbcTemplate?
例如,
String sql = "insert into db_table (associateid,comment) values(:associateId,:comments)";
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("associateId", "12345");
paramMap.put("comments", "some comments");
int rowNumber = readTemplate.update(sql, paramMap);
要么
String sql = "insert into db_table (associateid,comment) values(?,?)";
int rowNumber = readTemplate.update(sql,new Object[] {"comments","some comments"} );
第一个使用NamedParameterJdbcTemplate,而第二个使用SimpleJdbcTemplate.
在某些网站中,它的给定与两者相同,在其他一些网站中,NamedParameterJdbcTemplate是安全的.
任何人都可以清除我的怀疑吗?
解决方法:
两者都使用Preparedstatements来执行查询.这些是防止SQL注入的东西.因此,SQL注入没有区别.
但是,如果您查看SimpleJdbcTemplate的文档:
Deprecated.
since Spring 3.1
in favor of JdbcTemplate and NamedParameterJdbcTemplate. The JdbcTemplate and NamedParameterJdbcTemplate now provide all the functionality of the SimpleJdbcTemplate.
所以你应该使用NamedParameterJdbcTemplate,因为它没有被删除. (遗留代码可能仍会使用它)
本文标题为:java – 哪一个更安全的SQL注入-namedParameterJdbcTemplate或SimpleJdbcTemplate?
基础教程推荐
- Spring BOOT AOP基础应用教程 2023-02-18
- 二、阿里云CentOS7的Java环境配置 2023-09-01
- SpringCloud Eureka服务治理之服务注册服务发现 2023-03-22
- Reactor 多任务并发执行且结果按顺序返回第一个 2023-05-24
- ShardedJedisPool的使用package com.test; import java.util.ArrayList; import java.util.List; import redis 2023-10-29
- 关于maven使用过程中无法导入依赖的一些总结 2023-04-16
- servlet+JSP+mysql实现文件上传的方法 2023-08-03
- SpringBoot实现滑块验证码验证登陆校验功能详解 2023-05-24
- Java实现简单学生管理系统 2023-03-15
- Springboot整合企业微信机器人助手推送消息的实现 2022-11-28
