目录
水平越权(横向越权)
采用token+手机号解决水平越权
纵向越权
纵向越权解决方法
水平越权(横向越权)
水平越权指的是获取了同级别用户的权限:例如A登陆自己的商城,却能够看到B的订单。
采用token+手机号解决水平越权
横向越权产生的一个原因,是只做了认证,却没有做鉴权。
例如:国内某知名国企系统,以手机号作为登陆名。当登陆认证通过时,查询个人信息,会把手机号和token一起post给后台,后台查看token正确之后,会执行select * from infomation where id = 手机号。如果此时,用浏览器自带的调试功能,对该请求编辑并重发时,将手机号换成别人的,即可返回其它人信息。而理论上手机号的范围只在10000000000到19999999999之间,所以利用该漏洞,可以获取所有人员包括工资、身份证号码、个人住址等隐私信息。
对于这种横向越权问题,可以将token做鉴权,即将token与登陆名绑定,这样用户就无法访问到其它用户的信息了。
纵向越权
纵向越权是指获取了更高级别用户的权限:例如普通用户A获取了管理员用户B的权限。
纵向越权解决方法
纵向越权最常见的场景是,对于高级别权限的url没有做鉴权,而只是简单地对普通用户隐藏了起来。
例如当用户登陆时,后台会判断用户角色,然后返回角色对应的菜单,例如普通用户有三个菜单,而管理员用户有五个。但是只是没有把管理员用户多余的两个菜单返回给普通用户而已。如果普通用户猜出了管理员用户专用的url,直接在浏览器中输入,则可以进入管理员菜单。文章来源:https://www.toymoban.com/news/detail-519118.html
对于这种纵向越权问题,解决方法也很简单,只需要将session与用户角色强绑定,并且在每个url进入时都进行验证就行了。文章来源地址https://www.toymoban.com/news/detail-519118.html
到了这里,关于如何解决水平越权(横向越权)和纵向越权的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!