当前位置: 首页 > 工具软件 > fortify > 使用案例 >

Fortify Access Control

鲁财
2023-12-01

1. 描述

没有适当的 access control, 导致攻击者访问未授权的数据

2. 场景

  • Database 场景

3. Database 场景

访问数据未经访问权限控制, 存在越权查看数据漏洞

3.1 存在漏洞代码

通过 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 (不断遍历查看其他用户信息)

3.2 修复建议

在系统中增加数据权限管理, 查询数据时去数据权限管理中心验证

 类似资料:

相关阅读

相关文章

相关问答