У меня есть служба весенней загрузки (2.4.5), которая показывает ошибку checkmarx, что нам нужно очистить полезную нагрузку запроса. Как мы очищаем полезную нагрузку запроса?
@ApiOperation(value = "Executes new report. The response contains the new job id.")
@PostMapping(value = "/execute")
public ResponseEntity<MyResponse<Object, Void>> execute(
@RequestBody final MyInput input) {.......}
Я получаю следующее сообщение об ошибке checkmarx для окончательного ввода MyInput @RequestBody:
Метод приложения executeNewReport выполняет SQL-запрос с входными данными в строке 82 файла src\main\java\com\gayathri\controllers\JobController.java. Приложение создает этот SQL-запрос, встраивая в запрос ненадежную строку без надлежащей очистки. Объединенная строка отправляется в базу данных, где она анализируется и выполняется соответствующим образом. Этот очевидный доступ к базе данных, по-видимому, инкапсулирован во внешнем компоненте или API. Таким образом, кажется, что злоумышленник может внедрить произвольные данные в SQL-запрос, изменив пользовательский ввод, который считывается методом execute, в строке 75 файла src\main\java\com\gayathri\controllers\. Джобконтроллер.java. Затем этот ввод проходит через код к внешнему API, а оттуда — к серверу базы данных, по-видимому, без очистки. Это может привести к атаке SQL Injection, основанной на эвристическом анализе.
Я хотел бы продезинфицировать свою полезную нагрузку. Или нет другого варианта, кроме как использовать DTO, а затем преобразовать его в мою базу данных?