【发布时间】:2017-09-12 18:33:06
【问题描述】:
我正在使用 Struts2 框架和 Hibernate,我正在增强一个我没有启动的系统,我增强了系统的一些功能并在产品。但是当他们使用Acunetix 扫描它时,在登录模块的某处,系统中检测到了一些威胁(警报),其中警报显示:
警报:SQL注入
严重性:高
说明:此脚本可能容易受到 SQL 注入攻击。
建议:您的脚本应该从用户输入中过滤元字符。查看详细信息以获取有关修复的更多信息 这个漏洞。
然后,我检查了该警报的错误脚本。老开发者使用 Hibernate 创建查询。
List<UserBean> users = session.createQuery("from UserBean where username =?")
.setParameter(0,username)
.list();
我的问题是:
-这个使用Hibernate的查询不能避免SQL注入吗?
-为了避免 SQL 注入,.setParameter 是否应该是 .setString 更具体?
或以上都不是?
感谢您的时间。
【问题讨论】: