不要使用hql字符串组装,使用传递参数方式操作
如
Object[] obj = { "400", "' and 1=1 or 1='" };
getHibernateTemplate().find("select new User(status) from user t where t.status=? and services=?",
obj)
或者
getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
String sql = "from User as model where name=:nameand password=:services";
Query query = session.createQuery(sql);
query.setParameter("name", "400");
query.setParameter("password", "400");
return query.list();
}
});
本文介绍了使用Hibernate框架进行数据库操作时的安全编程技巧,强调了避免使用HQL字符串拼接的方法,推荐使用参数传递的方式来防止SQL注入攻击。
1343

被折叠的 条评论
为什么被折叠?



