gpt4 book ai didi

java - 查找安全漏洞 - 真正的 SQL 注入(inject)还是误报?

转载 作者:太空宇宙 更新时间:2023-11-04 07:39:51 26 4
gpt4 key购买 nike

我使用 FindBug 以及插件 Find Security Bugs 来帮助我查找代码中的安全缺陷。我不确定为什么某些代码被标记为容易受到 SQL 注入(inject)攻击。

这里有两个例子:

final StringBuilder queryString = new StringBuilder("SELECT users.login FROM Users users, Table table WHERE users.idUser = table.users.idUser");
Query query = session.createQuery(queryString.toString()); // This line is flagged


StringBuilder queryString = new StringBuilder("SELECT data FROM Table ");
queryString.append("WHERE table.idEntreprise = :id");
Query query = session.createQuery(queryString.toString()).setInteger("id", id); // This line is flagged

这是误报还是我错过了什么?如果我理解正确的话,使用 createQuery()setX() 应该足够了?

最佳答案

这是误报。命名查询参数会被 Hibernate 转义,因此无法执行 SQL 注入(inject)。

即使第一个没有命名参数的查询也是安全的,因为它不使用 users.idUser 参数的外部输入。

关于java - 查找安全漏洞 - 真正的 SQL 注入(inject)还是误报?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16233185/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com