必须有办法在hibernate中准备我们的SQL查询吗?
因此,我们最终不会受到像这样的SQL注入攻击的代码......
public List<Book> findByAutor(String author) {
String qry = "from Book where author=\'"+author+"\'";
@SuppressWarnings("unchecked")
List<Book> books = (List<Book>) getCurrentSession().createQuery(qry).list();
return books;
}
由于用户可以输入如下内容:
"Paulo Coelho\' or ''='"
作为作者并获取我们数据库中的所有书籍......
可能简单,但我无法在互联网上找到它:/
答案 0 :(得分:1)
尝试使用这样的内容,set
字符串和check
字符串:
String qry = "from Book where author= ?";
@SuppressWarnings("unchecked")
List<Book> books = (List<Book>) getCurrentSession().createQuery(qry)
.setString(0, author)
.list();
有关详细信息,请查看此link