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

目录

水平越权(横向越权)

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

纵向越权

纵向越权解决方法


水平越权(横向越权)

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

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

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

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

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

纵向越权

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

纵向越权解决方法

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

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

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

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
水平越权漏洞是一种安全漏洞,指的是攻击者通过修改或伪造请求参数、会话标识或其他身份验证机制,以获取未经授权的访问权限或执行特权操作。以下是水平越权漏洞的成因和处置建议: 成因: 1. 不恰当的身份验证和授权机制:系统可能存在缺陷的身份验证和授权机制,未正确验证用户的权限或未正确限制用户的操作范围。 2. 不安全的会话管理:会话标识可能易于猜测、被劫持或未正确管理,导致攻击者能够访问其他用户的会话数据或执行特权操作。 3. 缺乏输入验证和过滤:未正确验证和过滤用户输入,攻击者可以通过修改请求参数实现越权操作。 处置建议: 1. 实施严格的身份验证和授权机制:确保系统正确验证用户身份和权限,并根据用户的权限限制其操作范围。 2. 安全的会话管理:使用随机、复杂且不易预测的会话标识,并确保会话标识在传输和存储过程中得到适当的保护。 3. 输入验证和过滤:对用户输入进行严格验证和过滤,确保只接受有效和预期的输入,并防止攻击者通过修改请求参数来实现越权操作。 4. 最小特权原则:在授权用户时,应遵循最小特权原则,只授予用户完成所需任务所需的最低权限级别。 5. 定期安全审计:对系统进行定期的安全审计,发现和修复可能存在的水平越权漏洞。 6. 持续安全培训和意识提高:教育开发人员、管理员和用户关于水平越权漏洞的风险和防范措施,增强他们对安全问题的意识。 通过以上措施,可以有效减少水平越权漏洞的风险,并提升系统的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值