如何解决水平越权(横向越权)和纵向越权
目录
水平越权(横向越权)
采用token+手机号解决水平越权
纵向越权
纵向越权解决方法
水平越权(横向越权)
水平越权指的是获取了同级别用户的权限:例如A登陆自己的商城,却能够看到B的订单。
采用token+手机号解决水平越权
横向越权产生的一个原因,是只做了认证,却没有做鉴权。
例如:国内某知名国企系统,以手机号作为登陆名。当登陆认证通过时,查询个人信息,会把手机号和token一起post给后台,后台查看token正确之后,会执行select * from infomation where id = 手机号。如果此时,用浏览器自带的调试功能,对该请求编辑并重发时,将手机号换成别人的,即可返回其它人信息。而理论上手机号的范围只在10000000000到19999999999之间,所以利用该漏洞,可以获取所有人员包括工资、身份证号码、个人住址等隐私信息。
对于这种横向越权问题,可以将token做鉴权,即将token与登陆名绑定,这样用户就无法访问到其它用户的信息了。
纵向越权
纵向越权是指获取了更高级别用户的权限:例如普通用户A获取了管理员用户B的权限。
纵向越权解决方法
纵向越权最常见的场景是,对于高级别权限的url没有做鉴权,而只是简单地对普通用户隐藏了起来。
例如当用户登陆时,后台会判断用户角色,然后返回角色对应的菜单,例如普通用户有三个菜单,而管理员用户有五个。但是只是没有把管理员用户多余的两个菜单返回给普通用户而已。如果普通用户猜出了管理员用户专用的url,直接在浏览器中输入,则可以进入管理员菜单。
对于这种纵向越权问题,解决方法也很简单,只需要将session与用户角色强绑定,并且在每个url进入时都进行验证就行了。
如何解决水平越权(横向越权)和纵向越权相关推荐
- 数据库横向扩展和纵向扩展
传统master-slaves模式中master性能会成为瓶颈,使用将数据库的"分片"概念来解决 水平拆分|横向扩展 水平的拆分的方案,即不修改数据库表结构,通过对表中数据的拆分而 ...
- java项目横向越权,水平、垂直权限问题(横向越权与纵向越权)
标签: 横向越权与纵向越权 横向越权:横向越权指的是攻击者尝试访问与他拥有相同权限的用户的资源 纵向越权:纵向越权指的是一个低级别攻击者尝试访问高级别用户的资源 如何防止横向越权漏洞: 可通过建立用户 ...
- 横向越权和纵向越权(水平越权、垂直越权)
越权:顾名思义,就是获得了本不应该有的权限. 我们都喜欢创造一些复杂的词汇,而实际上这些词就是一个代词,根本没有那么复杂. 越权漏洞往往是基于业务逻辑的漏洞,这样的漏洞很难被WAF保护. 越权的分类 ...
- web应用水平越权(横向越权)和垂直权限(纵向越权)问题
1. 基本概念 1.1 横向越权 横向越权:横向越权指的是攻击者尝试访问与他拥有相同(级别或角色)权限的用户的资源. 1.2 纵向越权 纵向越权:纵向越权指的是一个低级别(低权限)攻击者尝试访问高级别 ...
- 横向越权访问java_横向越权纵向越权安全漏洞的解决
一.什么是横向越权和纵向越权. 1.横向越权:攻击者想访问与他权限相同的用户,例如:在忘记密码回答问题成功后,会跳到重设密码的页面,这个时候如果用户随意填用户名和密码,而且数据库也刚刚好存在这个用户时 ...
- 横向越权与纵向越权区别
横向越权:横向越权指的是攻击者尝试访问与他拥有相同权限的用户的资源 纵向越权:纵向越权指的是一个低级别攻击者尝试访问高级别用户的资源 如何防止横向越权漏洞: 可通过建立用户和可操作资源的绑定关系,用户 ...
- 横向越权、纵向越权问题解决
横向越权:横向越权指的是攻击者尝试访问与他拥有相同权限的用户的资源 纵向越权:纵向越权指的是一个低级别攻击者尝试访问高级别用户的资源 对于纵向越权,我们可以通过设置用户角色,为不同的角色提供不同的权限 ...
- java项目横向越权_横向越权、纵向越权问题解决
横向越权:横向越权指的是攻击者尝试访问与他拥有相同权限的用户的资源 纵向越权:纵向越权指的是一个低级别攻击者尝试访问高级别用户的资源 对于纵向越权,我们可以通过设置用户角色,为不同的角色提供不同的权限 ...
- el-tree 解决横向滚动条和纵向滚动条问题
如题,在el-tree所处的代码块中,加入滚动条,使其能够滚动 使用overflow:scroll 即可 overflow定义:设定如果内容溢出元素设定范围后该怎么做. overflow:visibl ...
最新文章
- 22021年江苏高考成绩查询,江苏高考成绩查询系统
- 数据库迁移_【干货分享】DM数据库迁移方法(物理迁移)
- 34 个火爆全网的Python开源框架
- varchar与nvarchar的区别
- F7-Vue1.0与2.0不兼容列表
- 为什么Java的+ =,-=,* =,/ =复合赋值运算符不需要强制转换?
- 深入讲解Android Property机制
- 手摸手教你使用vue-cli脚手架-详细步骤图文解析[vue入门]
- Pawel wojs:《全面战争:三国》美术概览
- 心电信号去噪(part2)--中值滤波器
- rimraf 秒删 node_modules
- 视觉SLAM十四讲学习笔记-第六讲-非线性优化的实践-高斯牛顿法和曲线拟合
- jquery.datatables使用
- 文章id 文章标题点击量php,zblogphp函数:GetPost 获取指定ID/标题/别名的文章或页面数据...
- 微课|玩转Python轻松过二级(2.1节):常用内置对象
- 遍历 in java_[Java教程]JavaScript中遍历数组 最好不要使用 for in 遍历
- 有哪些在朋友圈发会被秒赞的文案?
- laravel nginx配置_nginx高可用
- 怎么看mac电脑wifi密码?很简单!
- Pixel 值得购买么?