目录

水平越权(横向越权)

采用token+手机号解决水平越权

纵向越权

纵向越权解决方法


水平越权(横向越权)

水平越权指的是获取了同级别用户的权限:例如A登陆自己的商城,却能够看到B的订单。

采用token+手机号解决水平越权

横向越权产生的一个原因,是只做了认证,却没有做鉴权。

例如:国内某知名国企系统,以手机号作为登陆名。当登陆认证通过时,查询个人信息,会把手机号和token一起post给后台,后台查看token正确之后,会执行select * from infomation where id = 手机号。如果此时,用浏览器自带的调试功能,对该请求编辑并重发时,将手机号换成别人的,即可返回其它人信息。而理论上手机号的范围只在10000000000到19999999999之间,所以利用该漏洞,可以获取所有人员包括工资、身份证号码、个人住址等隐私信息。

对于这种横向越权问题,可以将token做鉴权,即将token与登陆名绑定,这样用户就无法访问到其它用户的信息了。

纵向越权

纵向越权是指获取了更高级别用户的权限:例如普通用户A获取了管理员用户B的权限。

纵向越权解决方法

纵向越权最常见的场景是,对于高级别权限的url没有做鉴权,而只是简单地对普通用户隐藏了起来。

例如当用户登陆时,后台会判断用户角色,然后返回角色对应的菜单,例如普通用户有三个菜单,而管理员用户有五个。但是只是没有把管理员用户多余的两个菜单返回给普通用户而已。如果普通用户猜出了管理员用户专用的url,直接在浏览器中输入,则可以进入管理员菜单。

对于这种纵向越权问题,解决方法也很简单,只需要将session与用户角色强绑定,并且在每个url进入时都进行验证就行了。

如何解决水平越权(横向越权)和纵向越权相关推荐

  1. 数据库横向扩展和纵向扩展

    传统master-slaves模式中master性能会成为瓶颈,使用将数据库的"分片"概念来解决 水平拆分|横向扩展 水平的拆分的方案,即不修改数据库表结构,通过对表中数据的拆分而 ...

  2. java项目横向越权,水平、垂直权限问题(横向越权与纵向越权)

    标签: 横向越权与纵向越权 横向越权:横向越权指的是攻击者尝试访问与他拥有相同权限的用户的资源 纵向越权:纵向越权指的是一个低级别攻击者尝试访问高级别用户的资源 如何防止横向越权漏洞: 可通过建立用户 ...

  3. 横向越权和纵向越权(水平越权、垂直越权)

    越权:顾名思义,就是获得了本不应该有的权限. 我们都喜欢创造一些复杂的词汇,而实际上这些词就是一个代词,根本没有那么复杂. 越权漏洞往往是基于业务逻辑的漏洞,这样的漏洞很难被WAF保护. 越权的分类 ...

  4. web应用水平越权(横向越权)和垂直权限(纵向越权)问题

    1. 基本概念 1.1 横向越权 横向越权:横向越权指的是攻击者尝试访问与他拥有相同(级别或角色)权限的用户的资源. 1.2 纵向越权 纵向越权:纵向越权指的是一个低级别(低权限)攻击者尝试访问高级别 ...

  5. 横向越权访问java_横向越权纵向越权安全漏洞的解决

    一.什么是横向越权和纵向越权. 1.横向越权:攻击者想访问与他权限相同的用户,例如:在忘记密码回答问题成功后,会跳到重设密码的页面,这个时候如果用户随意填用户名和密码,而且数据库也刚刚好存在这个用户时 ...

  6. 横向越权与纵向越权区别

    横向越权:横向越权指的是攻击者尝试访问与他拥有相同权限的用户的资源 纵向越权:纵向越权指的是一个低级别攻击者尝试访问高级别用户的资源 如何防止横向越权漏洞: 可通过建立用户和可操作资源的绑定关系,用户 ...

  7. 横向越权、纵向越权问题解决

    横向越权:横向越权指的是攻击者尝试访问与他拥有相同权限的用户的资源 纵向越权:纵向越权指的是一个低级别攻击者尝试访问高级别用户的资源 对于纵向越权,我们可以通过设置用户角色,为不同的角色提供不同的权限 ...

  8. java项目横向越权_横向越权、纵向越权问题解决

    横向越权:横向越权指的是攻击者尝试访问与他拥有相同权限的用户的资源 纵向越权:纵向越权指的是一个低级别攻击者尝试访问高级别用户的资源 对于纵向越权,我们可以通过设置用户角色,为不同的角色提供不同的权限 ...

  9. el-tree 解决横向滚动条和纵向滚动条问题

    如题,在el-tree所处的代码块中,加入滚动条,使其能够滚动 使用overflow:scroll 即可 overflow定义:设定如果内容溢出元素设定范围后该怎么做. overflow:visibl ...

最新文章

  1. 22021年江苏高考成绩查询,江苏高考成绩查询系统
  2. 数据库迁移_【干货分享】DM数据库迁移方法(物理迁移)
  3. 34 个火爆全网的Python开源框架
  4. varchar与nvarchar的区别
  5. F7-Vue1.0与2.0不兼容列表
  6. 为什么Java的+ =,-=,* =,/ =复合赋值运算符不需要强制转换?
  7. 深入讲解Android Property机制
  8. 手摸手教你使用vue-cli脚手架-详细步骤图文解析[vue入门]
  9. Pawel wojs:《全面战争:三国》美术概览
  10. 心电信号去噪(part2)--中值滤波器
  11. rimraf 秒删 node_modules
  12. 视觉SLAM十四讲学习笔记-第六讲-非线性优化的实践-高斯牛顿法和曲线拟合
  13. jquery.datatables使用
  14. 文章id 文章标题点击量php,zblogphp函数:GetPost 获取指定ID/标题/别名的文章或页面数据...
  15. 微课|玩转Python轻松过二级(2.1节):常用内置对象
  16. 遍历 in java_[Java教程]JavaScript中遍历数组 最好不要使用 for in 遍历
  17. 有哪些在朋友圈发会被秒赞的文案?
  18. laravel nginx配置_nginx高可用
  19. 怎么看mac电脑wifi密码?很简单!
  20. Pixel 值得购买么?

热门文章

  1. 汉澳sinox2019操作系统AI企业版发布
  2. 手把手教你制作一目了然的可视化地图
  3. 模拟键盘鼠标事件有两种方法
  4. 微信小程序中播放海康萤石云HLS '.m3u8'视频 video标签
  5. !!return——执行了return语句,后面的语句将不会执行!!
  6. FlyAI小课堂:python机器学习笔记:深入学习决策树算法原理
  7. ios支付宝支付--看我就够了
  8. 祝读者朋友们新年快乐
  9. mysql 修改表字段
  10. 多线程使用场景(经典必看)