没有适当的 access control, 导致攻击者访问未授权的数据
访问数据未经访问权限控制, 存在越权查看数据漏洞
通过 id 查询用户信息, 未对数据访问权限检查, 导致攻击者越权查看未授权的数据, 造成横向越权
@Slf4j
@RestController
@RequestMapping("accessControl")
public class AccessControlController {
private final UserService userService;
public AccessControlController(UserService userService) {
this.userService = userService;
}
/**
* 数据访问权限控制失效, 越权查看数据
* @param id
* @return
*/
@GetMapping("database")
public ResponseVO database(@RequestParam("id") Long id) {
// 通过 id 查询数据, 数据查询没有经过权限校验, 可以遍历 id 查询任意用户的信息
User user = userService.getById(id);
return ResponseVO.success(user);
}
}
正常请求: http://localhost:8080/accessControl/database?id=1
攻击者请求: http://localhost:8080/accessControl/database?id=2 (不断遍历查看其他用户信息)
在系统中增加数据权限管理, 查询数据时去数据权限管理中心验证