Увеличивает ли добавленное значение в setParameter именованного запроса возможность внедрения SQL? - PullRequest
0 голосов
/ 26 июня 2018

У меня есть строка запроса вроде -

queryStr.append(" ").append(relation.getJoins()[i].getChildSql()).append(" = :join").append(i);

Я использую setParameter для установки значения : join , но Sonar жалуется на возможность внедрения SQL. Разрешено ли добавлять значения в setParameter, как показано ниже -

 for (int i = 0; i < parentKeyValues.length; i++) {
                    query.setParameter("join" + i, parentKeyValues[i]);
                }

1 Ответ

0 голосов
/ 26 июня 2018

SQL-инъекция возможна в:

.append(relation.getJoins()[i].getChildSql())

только тогда, когда getChildSql() может возвращать любые данные, предоставленные пользователем.

.append(" = :join").append(i)

только когда i - это нечто иное, чемцелое число и может содержать данные, предоставленные пользователем.

Я не думаю, что setParameter() можно было бы использовать.

...