Java web中的越权问题
越权分为横向越权和纵向越权
横向越权指两个具有相同权限的用户A和用户B,他们属于同一角色,拥有相同的权限等级,他们都能获取自己的私有数据,如果只对权限和角色做了处理,对数据并没有进行细化的处理和校验,导致A可以访问B的数据或者B可以访问A的数据,这种情况就属于水平横向越权
纵向越权是指一个低级别的用户可以访问高级别的用户的资源
处理横向越权:可以使用token来进行权限的判断,比如说某个用户登上账号之后,自动生成一个有时间限制的token,token传递到下一步,如果token过期的话,所有用户都不能访问资源,必须重新登陆,这个用户访问下一步的话必须验证token是否正确。
处理纵向越权:使用基于角色控制机制防止纵向越权攻击,预先定义不同的权限角色,为每个角色分配不同的权限,每个用户拥有特定的角色,即拥有固定的权限。