用户登录
用户注册

分享至

hibernate hql注入

  • 作者: 你在逗我85667409
  • 来源: 51数据库
  • 2021-01-18
很可惜,如果你是组合hql字符串的话,是防止不了的,要防止的话,也要用占位符,比如
query=session.createQuery("select count(*) from CpUser where id = :id and password = :password");
...
query.setParameter("id".userForm.getId());
...
如果你不想这么做的话,就要自己写一个filter,自动把所有的request参数值处理一下,如特殊字符前加上\,就不会有注入错误了



  不要。 你的sql或者hql,是拼装的还是prepared传递的(?传递)。 拼出来的,当然需要防注入了。和你用不用hibernate没关系



  hibernate也支持单独执行SQL,所以能不能防止在你使用都,而不是工具本身



  可以,
String HQL="from User u where u.name = :name u.password =:password";
Query query = session.createQuery(HQL);
query.setParameter("name",username);
query.setParameter("password",password);
List result=query.list();
软件
前端设计
程序设计
Java相关