关于Ibatis 的自动防止SQL 注入
2012-11-28 22:49
357 查看
转载于:/article/10387355.html
假设用户执行
[java] view plaincopyprint?
select * from product where id =
5
在执行完select后,还将删除orders表里的所有记录。(如果他只删了这些记录,已经谢天谢地了,他可能会做更可怕地事情)。
不过庆幸的是,Ibatis使用的是预编译语句(PreparedStatement
s )。
上述语句会被编译为,
[java] view plaincopyprint?
select * from product where id=?
这时你一定要仔细过滤那些值以避免SQL注入。当然这种情况不只存在Ibatis中。
参考资料:
【iBATIS in Action】 3.5.2 SQL injection
假设用户执行
[java] view plaincopyprint?
select * from product where id =
5
[c-sharp] view plaincopyprint? select * from product where id=5; delete from orders select * from product where id=5; delete from orders.
在执行完select后,还将删除orders表里的所有记录。(如果他只删了这些记录,已经谢天谢地了,他可能会做更可怕地事情)。
不过庆幸的是,Ibatis使用的是预编译语句(PreparedStatement
s )。
上述语句会被编译为,
[java] view plaincopyprint?
select * from product where id=?
[java] view plaincopyprint? SELECT * FROM $TABLE_NAME$ WHERE $COLUMN_NAME$ = #value# SELECT * FROM $TABLE_NAME$ WHERE $COLUMN_NAME$ = #value#
这时你一定要仔细过滤那些值以避免SQL注入。当然这种情况不只存在Ibatis中。
参考资料:
【iBATIS in Action】 3.5.2 SQL injection
相关文章推荐
- 关于Ibatis 的自动防止SQL 注入
- 防止注入网上查了下用SqlParameter可以,那SqlParameter处理单引号时候是自动转义了吗
- 关于SQL Server自动增长字段
- ibatis中主键自动增长(Oracle,Ms sql server ,mysql)
- 关于SQL语句的自动生成!(二)
- 关于SpringBoot bean无法注入的问题(与文件包位置有关)改变自动扫描的包
- 防止SQL注入安全性解决方案
- asp防止sql 语句注入的代码
- 文本入库特殊字符处理, 防止SQL注入
- 关于Spring中为静态static的@Resource自动注入失败的问题
- iBatis自动生成的主键 (Oracle,MS Sql Server,MySQL)【转】
- spring中使用servlet拦截器实现防止sql注入
- PHP PDO 防止SQL注入
- 关于SQL语句的自动生成!(三)
- 关于SpringBoot bean无法注入的问题(与文件包位置有关)改变自动扫描的包
- 关于SpringBoot404, bean无法注入的问题(与文件包位置有关)改变自动扫描的包
- SQL语句查询时防止SQL语句注入的方法之一
- 5.用preparedStatement防止SQL注入
- 关于laravel 自动加载和依赖注入、服务容器、服务提供者的理解--1
- 防止SQL注入