Spring 数据 JPA Checkmarx 漏洞 - @Query 注释的不正确资源访问授权

Spring data JPA Checkmarx vulnerability- Improper Resource Access Authorization for @Query annotation

我们目前正在开发使用 Spring data JPA 实现的持久层的 Web 应用程序,它对我们来说非常好,但是在使用 checkmarx 扫描我们的代码时,它抱怨 "Improper Resource Access Authorization" 下面代码中所有输入参数的错误 snippet.Not 确定如何解决 it.Based 根据我的理解,我们尝试了以下方法,但这也没有帮助

期待这里的任何指针向正确的方向前进

也许 Checkmarx 不支持序数参数表示法,请尝试像这样重写查询:

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

其中employeeIdParameter是输入参数。

希望这对您有所帮助, 阿米特

在其他答案之一的评论中,有人提供了答案。本质上,Checkmarx 无法确定您是否正在检查 user/service 是否有权执行此命令。

安全的实施方式如下:

if(userCanPerformAction(employeeId)){
   repository.findEmployeeAddressByEmployeeId(employeeId, date)
}

它不够聪明,无法知道您的代码在调用存储库之前是否实际执行了所需的检查。因此,您需要做的是在执行 findEmployeeAddressByEmployeeId 之前验证您是否进行了正确的验证检查。如果是,那么您将按照您的组织流程将某些内容标记为误报。