博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate使用中,防止SQL注入的一些措施
阅读量:5960 次
发布时间:2019-06-19

本文共 894 字,大约阅读时间需要 2 分钟。

  hot3.png

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。

    在获取便利操作的同时,SQL的注入问题也值得我们的密切注意,下面就来谈谈几点如何避免SQL注入:

    1.对参数名称进行绑定:

Query query=session.createQuery(hql);query.setString(“name”,name);

    2.对参数位置进行邦定:

Query query=session.createQuery(hql);query.setString(0,name1);query.setString(1,name2);...

    3.setParameter()方法:

Query query=session.createQuery(hql); query.setParameter(“name”,name,Hibernate.STRING);

    4.setProperties()方法:

Entity entity=new Entity();entity.setXx(“xx”);entity.setYy(100);Query query=session.createQuery(“from Entity c where c.xx=:xx and c.yy=:yy ”); query.setProperties(entity);
    5.HQL拼接方法,这种方式是最常用,而且容易忽视且容易被注入的,通常做法就是对参数的特殊字符进行过滤,推荐大家使用
Spring工具包的StringEscapeUtils.escapeSql()方法对参数进行过滤:
public static void main(String[] args) {    String str = StringEscapeUtils.escapeSql("'");    System.out.println(str);}

  输出结果:''

转载于:https://my.oschina.net/miger/blog/307683

你可能感兴趣的文章
java中的Bean Validation
查看>>
spring-data-redis 使用过程中需要注意的一点
查看>>
vsftp
查看>>
Cloudera Hadoop 4系列实战课程(电商业日志流量分析项目)
查看>>
字符串,链表,树
查看>>
Linux学习笔记:MySQL主从同步
查看>>
Nginx错误日志(error_log)配置及信息详解
查看>>
Highcharts 学习笔记
查看>>
高性能python编程之协程
查看>>
PHP编译过程中常见错误信息的解决方法
查看>>
redis服务端及php客户端安装方法
查看>>
定时删除文件
查看>>
mysql主从同步
查看>>
springmvc 高级3 之 统一异常处理
查看>>
我的友情链接
查看>>
memcache安装
查看>>
(总结)Web性能压力测试工具之ApacheBench(ab)详解
查看>>
我的友情链接
查看>>
AWT查看oracle历史sql语句执行
查看>>
支付宝、微信、QQ红包大战,商家选谁更靠谱?
查看>>