>我有一个查询字符串,比如 -
queryStr.append(" ").append(relation.getJoins()[i].getChildSql()).append(" = :join").append(i);
我正在使用 setParameter 来设置:join的值,但 Sonar 抱怨 SQL 注入的可能性。是否不允许在设置参数中附加值,如下所示 -
for (int i = 0; i < parentKeyValues.length; i++) {
query.setParameter("join" + i, parentKeyValues[i]);
}
SQL注入可以在:
.append(relation.getJoins()[i].getChildSql())
仅当getChildSql()
可以返回任何类型的用户提供的数据时。
.append(" = :join").append(i)
仅当i
不是整数并且可能包含用户提供的数据时。
我不认为setParameter()
可以被利用。