(1)风险概述
垂直越权是一种URL的访问控制设计缺陷引起的漏洞,由于未对URL设定严格的用户访问控制策略,导致普通用户也可以通过发送请求的方式访问本应由高权限用户才可访问的页面。
(2)缺陷编码示例:
如下是一段删除用户操作的代码,若在操作时未对访问请求者的权限做判断,那么攻击者就可以构造请求“http://xxx.xxx.xxx/user/delete?id=1”来做只有管理员才有权限干的事情。
@RequestMapping(value = "delete")
public String delete(HttpServletRequest request, @RequestParam Long id)
throws Exception {
try {
userManager.delete(id);
request.setAttribute("msg", "删除用户成功");
} catch (ServiceException e) {
// logger.error(e.getMessage(), e);
request.setAttribute("msg", "删除用户失败");
}
return list(request);
}