读书人

hibernatetemplate查询能造成sql注入吗

发布时间: 2013-11-06 16:26:37 作者: rapoo

hibernatetemplate查询会造成sql注入吗

String hql= "from bean.User u where u.name=? and u.password=?"
this.getHibernateTemplate().find(hql, new String[]{"test", "123"});


 String queryString = "select count(*) from bean.User u where u.name=:myName and u.password=:myPassword"; 
String[] paramName= new String[]{"myName", "myPassword"};
String[] value= new String[]{"xiyue", "123"};
this.getHibernateTemplate().findByNamedParam(queryString, paramName, value);

会有sql注入漏洞吗? sql hibernate 数据库 查询 java
[解决办法]
sql语句用字符串拼接的方式会有sql注入风险
[解决办法]
这个没试过,应该是将sql发过去执行的,你自己试一下看看
[解决办法]
还是看你的HQL怎么写 如果HQL中有拼SQL的 还是有可能 如果都是参数的 那不会
[解决办法]
引用:
Quote: 引用:

sql语句用字符串拼接的方式会有sql注入风险

用?或者:字段来赋值字段也会吗?
如:this.getHibernateTemplate().find("from bean.User u where u.name=?", "test");
或模糊查询:this.getHibernateTemplate().find("from bean.User u where u.name like ?", "%test%");

这样算安全的
[解决办法]
目测你这两种方式不会造成注入漏洞
[解决办法]
引用:
Quote: 引用:

目测你这两种方式不会造成注入漏洞

String hql = "select * from table where username="+username+"and password = "+password;
hibernatetemplate.find(hql);
这种查询应该就会出现sql注入漏洞对吗?
恩呢,这种就会有注入的危险。
[解决办法]
hibernate一般不会造成sql注入

读书人网 >J2EE开发

热点推荐