Отчет Checkmarx sql-инъекция JpaRepository

#java #spring-boot #jpa #sql-injection #checkmarx

Вопрос:

я запускаю Checkmarx в своем коде и получаю уязвимость для инъекции sql. это упрощенный метод, который я использую

 public String assignRole(String userId, String roleId) {  Optionallt;RoleEntitygt; roleEntity = roleRepository.findById(roleId)  if (roleEntity.isPresent()) {  UserEntity user = UserEntity.builder().userId(userId).role(roleEntity.get()).build();  userRepository.save(user);  return "SUCCESS"; } else {  throw new ServiceException("ERROR"); }}  

и анализ checkmax говорит:

Метод assignRole приложения выполняет SQL-запрос с сохранением в строке xx src/Service.java. Приложение создает этот SQL-запрос путем встраивания в запрос ненадежной строки без надлежащей очистки. Объединенная строка отправляется в базу данных, где она анализируется и выполняется соответствующим образом. Злоумышленник сможет ввести произвольный синтаксис и данные в SQL-запрос, создав вредоносную полезную нагрузку и предоставив ее через входной идентификатор роли; Это может привести к атаке SQL-инъекции.

я немного сбит с толку, потому что я не создаю собственный запрос или не объединяю строки в запросе, или, может быть, я что-то упускаю.

есть какие-нибудь идеи, как это исправить? или, может быть, это ложноположительный результат.

Комментарии:

1. Это ложноположительный результат.