1. 基本概念

1.1 横向越权

横向越权:横向越权指的是攻击者尝试访问与他拥有相同(级别或角色)权限的用户的资源。

1.2 纵向越权

纵向越权:纵向越权指的是一个低级别(低权限)攻击者尝试访问高级别(高权限)用户的资源

1.3 如何防止横向越权漏洞

可通过建立用户和可操作资源的绑定关系,用户对任何资源进行操作时,通过该绑定关系确保该资源是属于该用户所有的。

对请求中的关键参数进行间接映射,避免使用原始关键参数名,比如使用索引1代替id值123等。

防止水平越权的关键是避免用户修改自身的身份标识为其它用户的身份标识。

1.4 如何防止纵向越权漏洞

建议使用基于角色访问控制机制来防止纵向越权攻击,即预先定义不同的权限角色,为每个角色分配不同的权限,每个用户都属于特定的角色,即拥有固定的权限,当用户执行某个动作或产生某种行为时,通过用户所在的角色判定该动作或者行为是否允许。

防止垂直越权的关键是禁止用户自己修改自身的角色或增加自身的权限。

2. 权限控制的四个层面

权限提现在四个层面,分别是增加、删除、修改和查询。

2.1 增加数据

增加数据需要的权限控制主要体现在跨权限的增加数据的控制。

增加业务数据具有变动部分,也有不可变部分(比如用户自身的身份标识),主要控制不可变部分。一种思路是该部分由后台进行填充,不依赖于前端传入,或者对前端传入的数据做严格校验。

增加基础数据(比如用户和角色的对应关系,角色和权限的对应关系等)的权限控制,严格判断用户角色和权限,禁止越权添加。

添加请求的身份标识严格校验或者从后端状态中获取,避免前端传入任意身份标识。

2.2 删除数据

对于删除数据,验证校验删除的数据是否在权限范围内。

删除请求的身份标识严格校验或者从后端状态中获取,避免前端传入任意身份标识。

2.3 修改数据

对于修改数据,验证校验修改的数据是否在权限范围内。

修改请求的身份标识严格校验或者从后端状态中获取,避免前端传入任意身份标识。

2.4 查询数据

对于查询数据,一般根据用户标识进行关联查询即可控制在权限范围内。

查询请求的身份标识严格校验或者从后端状态中获取,避免前端传入任意身份标识。

3. 权限控制技术方法

  • web层检查发起请求的用户权限,比如从session信息中获取;
  • 通过增加token校验的方式,验证页面提交的不可变信息是否被篡改;
  • 数据库表增加ownerId字段,增删改查询时加上其作为where语句条件(即每一个信息增加一个发布人的字段,修改的人必须与发布的人为同一个人才可以访问);
  • 对所有url资源进行权限验证;
  • 对所有的数据访问进行权限验证;
  • 记录完善的审计日志;

web应用水平越权(横向越权)和垂直权限(纵向越权)问题相关推荐

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

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

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

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

  3. 如何解决水平越权(横向越权)和纵向越权

    目录 水平越权(横向越权) 采用token+手机号解决水平越权 纵向越权 纵向越权解决方法 水平越权(横向越权) 水平越权指的是获取了同级别用户的权限:例如A登陆自己的商城,却能够看到B的订单. 采用 ...

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

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

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

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

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

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

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

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

  8. 【安全漏洞】水平权限漏洞和垂直权限漏洞

    前言 权限校验非常重要.如果不对水平.垂直权限做校验,就会发生泄漏用户数据的事故,造成P0故障. 一.水平权限漏洞 1.水平权限漏洞基本概念 什么是水平权限漏洞呢? 简单来说,水平权限漏洞是用户CUR ...

  9. 大华平台linux密码,大华DSS平台低权限账户越权直接修改system密码

    大华DSS平台低权限账户越权直接修改system密码 前提:拥有config配置用户名密码 被测试DSS版本信息:V3.11.003.R.20150929.374164 前提:拥有config配置用户 ...

最新文章

  1. 别再盲目学 Python 了!
  2. 使用DRS的维护模式实现单个VM的测试
  3. 几种常见自动化测试框架
  4. 中的实践 中兴_中兴通讯王卫斌:一步到位 构建5G 2B新商业
  5. 单因素方差分析[转载]
  6. 和feign的区别_Feign的传参研究
  7. 静态库.a和动态库.so的制作
  8. 动态路由之OSPF协议综合实验
  9. Atitit.vs2017 visual studio vs2003 vs2005 vs2008 VS2010 vs2012 vs2015新特性 新功能.docx Atitit. visual st
  10. html微信窗口阻止滚动条,微信浏览器禁止页面下拉查看网址(不影响页面内部scroll)...
  11. 短视频制作难度大吗?怎么剪辑短视频?
  12. SPSS数据分析常见问题(差异性研究)
  13. 在语义层面构建的对抗样本SemanticAdv: Generating Adversarial Examples via Attribute-conditioned Image Editing
  14. AI时代的追星逐浪,中国科技的奋发自强
  15. Java架构师成长直通车:LVS+Nginx实现高可用集群
  16. (附源码)Django 主机硬件配置推荐系统 毕业设计 231155
  17. 【愚公系列】2021年11月 攻防世界-进阶题-MISC-051(Miscellaneous-300)
  18. MOS管符号识别MOS管不同功能MOS管与寄生电容
  19. [数论][组合数学]微信群
  20. Why Successful People Spend 10 Hours a Week on ‘Compound Time’ -- 为什么成功人士每周花10个小时的复合时间

热门文章

  1. JVM - 对象的创建
  2. 安全帽识别的行业应用
  3. wechat微信小程序项目整体思路和panda电影首页
  4. 22、(转载)jQueryMobile 知识点总结
  5. 《思考,快与慢》 读书笔记
  6. frostwire设置libtorrent实现顺序下载边下边播
  7. 电脑长期,经常看电脑的危害有哪些 这几个危害不得不防
  8. 计算机发展史的研究报告,一种对计算机发展史展开研究的策略
  9. 6.python-opencv人脸检测
  10. wps在桌面创建快捷方式的时候没有Word和Excel文件