有道翻译:失效的访问控制,
下面是官网描述:
存取控制強化政策,使用户不能采取在预期权限之外的行动。控制失效通常会导致未经授权的资讯泄漏、修改或损坏所有资料,或执行超出用户权限的业务功能。常见的存取控制弱点包括:
-
通过修改 URL、內部应用程式状态或 HTML 页面,或仅使用自定义 API 攻击工具來绕过存取控制检查。
-
容许主键被更改为其他用户的记录,允许查看或编辑其他人的账户。
-
特权提升。未登入即成为用户,或以用户身份登入即成为管理员。
-
元数据操作,例如重放或篡改 JSON 网站令牌(JWT)之存取控制令牌,或纵以提升特权或滥用 JWT 失效的 cookie 或隐藏域内容。
-
CORS 错误配置允许未经授权的 API 存取。
-
以未经身份验证的用户身份強制浏览已验证的页面或以标准用户身份存取特权页面。存取缺少存取控制的 API 以进行 POST、PUT 和 DELETE 操作。
这是一个越权漏洞,即用户原本的权限是受限的,由于开发人员的疏忽,没有对用户的操作进行判断所导致
1:越权漏洞分为水平越权和垂直越权:
1.1:水平越权:相同权限不同用户
1.2垂直越权:不同权限不同用户:
1.2.1:向上越权:普通用户可以使用管理员的权限
1.2.2:向下越权:管理员可以使用普通用户的权限
垂直越权是由于后台没有做权限控制,或者是通过url或者某些参数的传递判断是否能够执行,导致用户通过修改url或猜测一些特殊参数就能够获取权限
横向越权是指黑客获取另一个用户的权限,但是你们的权限是一样的,比如我们查看个人信息时,通过抓包修改一些特殊参数后,页面返回的信息就变了
水平提升,这个依旧是水平越权,但是通过一些手段登陆了另一个账号,就是可以用另一个账号执行操作,就可以称为水平提升
修复方案:修复方案
垂直越权
1. 可以用安全框架,比如Spring Security,Shiro
2. 可以用拦截器,拦截所有接口的请求,对每个请求做权限校验。
3. 可以用AOP,切每个接口,对每个接口做权限校验。
水平越权:对用户的操作进行合法性检测,比如,查询当前需要操作的资源是否归属当前session中的已登录用户;或者查询当前需要操作的资源是否是允许操作的其它用户。