首页 > 数据库技术 > 详细

SQL注入与Java

时间:2016-10-23 15:05:26      阅读:218      评论:0      收藏:0      [点我收藏+]

前面这篇文章介绍了SQL注入,并且主要就PHP的内容做了实验:

http://www.cnblogs.com/charlesblc/p/5987951.html

还有这篇文章对处理方案做了介绍(PreparedStatement in PDO or mysqli)

http://www.cnblogs.com/charlesblc/p/5988919.html

 

那么对于Java是怎样的情况呢?

首先,尽量避免sql拼接,并且参数加引号。使用正则过滤,前端过滤。使用字符串转换,转义处理。

最终,尽量采用预编译语句集 PreparedStatement。

 

分析得出,PreparedStatement相比Statement基本解决了SQL注入问题,而且效率也有一定提升。

PreparedStatement对参数都做了转义,不允许引号的直接传递;

不允许传参过程中改变sql的逻辑结构,不允许在不同的插入时间改变查询的逻辑结构;

使用PreparedStatement提供的传参接口setXXX,在类型有误时会直接报错。

 

基本SQL注入就被过滤了(用基本,是因为现在也预测不到后面攻击技术是否有突破或者新的漏洞发现)。

另外,WEB层我们可以过滤用户的输入来防止SQL注入比如用Filter来过滤全局的表单参数。

 

Java连接数据库基本使用Mybatis(之前也用Hibernate)。裸JDBC调用,基本很少用了。所以就不实验了。

 

SQL注入与Java

原文:http://www.cnblogs.com/charlesblc/p/5989864.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!