Динамически создаваемый порядок по выражению в java, отображаемый как проблема с внедрением sql при проверке кода - PullRequest
0 голосов
/ 27 декабря 2018

В настоящее время я работаю над рефакторингом существующего кода в соответствии со стандартами veracode.У меня есть кусок кода, где предложение Order By динамически создается на основе пользовательского ввода.В veracode предлагается использовать именованный параметр, но это невозможно.Ниже приведена кодовая база.Пожалуйста, помогите с возможным решением.

orderClauses.append("ORDER BY ");
orderClauses.append(report.getSortColumn1()));
orderClauses.append(" ");
orderClauses.append(report.getSortOrder1());

1 Ответ

0 голосов
/ 27 декабря 2018

Измените

orderClauses.append(report.getSortColumn1()));

на что-то вроде

...
Set<String> columnsSet; 
// fill columnsSet for your query
...
String col = report.getSortColumn1();
col = columnsSet.has(col) ? col : "";
...
orderClauses.append(col);
...
//etc

Или напишите классные классы для отчетов с отражением, аннотациями и т. Д.

...