Уязвимость JPA Checkmarx в данных Spring - неправильная авторизация доступа к ресурсам для аннотации @Query - PullRequest
2 голосов
/ 09 января 2020

В настоящее время мы работаем над веб-приложением с постоянным слоем, реализованным с использованием Spring-данных JPA, и оно работает для нас очень хорошо, однако при сканировании нашего кода с использованием checkmarx он жалуется на «Неправильная авторизация доступа к ресурсам» ошибка для все входные параметры в фрагменте кода ниже. Не уверены, как его решить. Исходя из моего понимания, мы попробовали следующий подход, но это не помогло либо

  • Входной параметр белого списка с использованием @valid и @Pattern аннотации
  • Безопасный метод с использованием @Secured("ROLE_TEST") аннотации пружинной защиты.

    @Repository
    public interface EmployeeAddressRepository extends JpaRepository<EmployeeAddress, Integer> {
    
      @Query("select empAdd from EmployeeAddress empAdd where empAdd.Employee.employeeId=?1 and (endDate) ORDER BY empAdd.lastUpdateTimeStamp DESC")
      List<EmployeeAddress> findEmployeeAddressByEmployeeId(String employeeId, LocalDate date) throws PersistenceException;
    }
    

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

1 Ответ

1 голос
/ 16 января 2020

Возможно, Checkmarx не поддерживает порядковые обозначения параметров, попробуйте переписать запрос следующим образом:

@Query("select empAdd from EmployeeAddress empAdd where empAdd.Employee.employeeId= :empId and (endDate) ORDER BY empAdd.lastUpdateTimeStamp DESC", employeeIdParameter)

, где employeeIdParameter - входной параметр.

Надеюсь, это поможет, Амит

...