【发布时间】:2021-03-23 21:51:28
【问题描述】:
我有一个休眠搜索,允许通过他们的描述搜索工作。这使用类似查询将描述中找到的任何单词与正在搜索的单词进行匹配。下面的代码是有效的,但是很容易以'或'1'='1的形式被输入到搜索框中。这将输出我当然不想要的整个表。
log.debug("REST request to search Jobs for query {}", query);
Session session = HibernateUtil.getSession();
Query a = session.createQuery("select jobs from Jobs jobs where jobs.description like '%" + query + "%'");
return a.list();
我相信我需要使用参数绑定来纠正这个问题,但是我似乎无法让它工作。以下是我尝试过的一些代码,但我只是收到 500 内部服务器错误。我找不到任何使用 like 查询的示例,所以这会造成一些混乱。我可能忽略了一些明显的东西,因为我以前从未使用过休眠。
Query a = session.createQuery("select jobs from Jobs jobs where jobs.description like '%" + query + "%'");
a.setParameter("description", a);
return a.list();
【问题讨论】:
标签: java hibernate search code-injection protection