相关疑难解决方法(0)

在Hibernate中防止SQL注入

我已经使用hibernate与我的数据库交互,现在我想使我的数据库层对SQL注入安全,所以我做了一些研究,我发现我的查询应该参数化,所以这是否意味着我只是构建我的HQL查询如:

List mothers = session.createQuery(
"select mother from Cat as cat join cat.mother as mother where cat.name = ?")
.setString(0, name)
.list();
Run Code Online (Sandbox Code Playgroud)

然后它被参数化并受到SQL注入的保护,或者还有其他我需要做的事情......

另外一件事是提到 - " 总是逃避你的数据 "怎么能实现?

hibernate sql-injection hql parameterized

10
推荐指数
1
解决办法
8656
查看次数

Hibernate的Query.setParameter是否使SQL注入成为可能

我正在使用Struts2框架和Hibernate,我正在增强一个我没有启动的系统,我增强了系统的一些功能并在产品上实现了它。但是,当他们使用登录模块中的Acunetix进行扫描时,系统中检测到一些威胁(警报),其中警报显示:

警报:SQL 注入

严重性:高

描述:该脚本可能容易受到 SQL 注入攻击。

建议:您的脚本应该过滤用户输入中的元字符。查看详细信息以获取有关修复此漏洞的更多信息。

然后,我检查了该警报中出现错误的脚本。老开发人员使用 Hibernate 创建查询。

List<UserBean> users = session.createQuery("from UserBean where username =?")
    .setParameter(0,username)
    .list();
Run Code Online (Sandbox Code Playgroud)

我的问题是:

- 使用 Hibernate 的此查询是否无法避免 SQL 注入?

-.setParameter是否应该.setString更具体以避免 SQL 注入?

或者以上都不是?

谢谢你的时间。

java hibernate

4
推荐指数
1
解决办法
7801
查看次数

标签 统计

hibernate ×2

hql ×1

java ×1

parameterized ×1

sql-injection ×1