Spring Boot 和 JpaRepository 会阻止 sql 注入和 xss atack 吗?

Do Spring Boot and JpaRepository prevent sql injection and xss atack?

提问人:fatih yavuz 提问时间:2/26/2020 更新时间:2/26/2020 访问量:2481

问:

我想在我的spring boot项目中防止“sql注入”和“xss atack”。我下面的问题示例。

  1. 像 findOne() 这样的 JpaRepository 方法会阻止 sql 注入吗?
  2. 我应该像 StringEscapeUtils.escapeHtml4() 一样使用“PersonelNumber”参数 xss atacks 方法吗? (例如:..searchUser/<script>alert('1')</script> )

员工控制器

@GetMapping("/searchUser")
    public ResponseEntity searchUserByNo(@RequestHeader("personelNumber")String PersonelNumber) {
   return ResponseEntity.ok(new BaseResultsDTO<>(employeeService.getEmployeeByNo(PersonelNumber)));
}

员工服务

public Employee getEmployeeByNo(String personelNumber){
  employeeDao.findOne(personelNumber);
}
sql spring xss sql 注入

评论

0赞 Bhaumik Thakkar 2/26/2020
这回答了你的问题吗?JPA 中是否可能发生 SQL 注入攻击?
1赞 fatih yavuz 2/27/2020
实际上不是,我的意思是像 findOne()、findAll() 等 JpaRepository 方法,而不是我们创建的自定义查询。
4赞 Dorian McAllister 12/1/2020
我检查了很多 SO 问题,但似乎没有人回答 JpaRepositry 是否安全 SQL 注入。我们都知道非参数化 (SELECT where) 与 PreparedStatement 等相反,是 SQL 注入不安全的。但是关于 Repository.find() 等?

答: 暂无答案