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

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

大家好,又见面了,我是你们的朋友全栈君。

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资源进行权限验证;
  • 对所有的数据访问进行权限验证;
  • 记录完善的审计日志;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149890.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • adb常用命令–安装apk[通俗易懂]

    adb常用命令–安装apk[通俗易懂]方法一:adbpush  adbpushxxxx.apk/system/app(安装到 system/app目录下,有时安装不成功)手机中的系统apk应用(*.apk)位置:/system/app安装新apk到手机 adbpushxxxx.apk/system/app。后面的/system/app就是apk的安装目录。adbpush没有adbinstall保险,

    2022年5月29日
    350
  • linux .vimrc设置 tab设置

    linux .vimrc设置 tab设置一.仅设置当前用户的Tab键宽度输入命令:vim~/.vimrc然后:settabstop=4 //我这里将Tab键的宽度设置为4保存:ctrl+z+z(或:wq!)OK!二.设置所有用户的Tab键宽度输入命令:vim/etc/vimrc在vimrc文件的最后添加:settabstop=4保存:ctrl+z+z(或:wq!)OK!这样不管是哪个用…

    2022年5月3日
    63
  • 大数据应用及其解决方案(完整版)

    大数据应用及其解决方案(完整版)目录1、大数据概述1.1.概述1.2.大数据定义1.3.大数据技术发展2、大数据应用2.1.大数据应用阐述2.2.大数据应用架构2.3.大数据行业应用2.3.1.医疗行业2.3.2.能源行业2.3.3.通信行业2.3.4.零售业3、大数据解决方案3.1.大数据技术组成3.1.1.分析技术3.1.2.存储数据库…

    2022年6月2日
    52
  • 全面解决Generic host process for win32 services遇到问题需要关闭

    全面解决Generic host process for win32 services遇到问题需要关闭解决WIN补丁系统开机后弹出Generichostprocessforwin32services遇到问题需要关闭!出现上面这个错误一般有三种情况。1.就是补丁。开机后会提示GenericHostProcessforWin32Services遇到问题需要关闭”“RemoteRrocedureCall(RPC)服务意外终止,然后就自动重起电脑。一般该病毒会在补丁HKEY_

    2022年10月12日
    2
  • dumpbin 用法

    dumpbin 用法今天工作中需要查看dll中的内部结构所以重点学习了一下dumpbin的用法dumpbin.exe在/VC/BIN目录下,如果在其他目录下无法使用dumpbin,可以运行该目录下VCVARS32.BAT,这个批处理文件就是用来修复VC环境的。 下面列出了DUMPBIN命令行选项。此外列出每个选项提供的输出的一些了。/ALL显示除代码反汇编外的所有可用信息。使用

    2022年6月19日
    83
  • MySQL——MySQL 图形化管理工具的介绍

    MySQL——MySQL 图形化管理工具的介绍文章目录MySQL——MySQL图形化管理工具的介绍1、MySQLWorkbench2、Navicat3、SQLyog4、DBeaver5、DataGripMySQL——MySQL图形化管理工具的介绍MySQL图形化管理工具极大地方便了数据库的操作与管理,常用的图形化管理工具有:MysQLWorkbench、phpMyAdmin、NavicatPreminum、MySQLDumper、SQLyog、dbeaver、MysQLODBcConnector、DataGrip。1、MySQL

    2022年6月30日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号