Fortify Access Control

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 修复建议

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值