什么是横向越权?
-
横向越权:横向越权指的是攻击者尝试访问与他拥有相同权限的用户的资源;
-
纵向越权:纵向越权指的是一个低级别攻击者尝试访问高级别用户的资源。
例:用户A无法访问到北京区域的用户详情,用户A没有重置北京区域用户密码的权限。
但是通过获取到重置密码的接口url和对应用户的userid,用他的token执行重置密码的接口。重置成功!
出现原因是什么?
问题出现根本原因是:Java后端没有对相应的接口做相应的防止横向越权措施。
怎么找出问题的接口?
测试过程:
1、与产品沟通,整理出所有用户权限相关的重要接口;
2、使用带有修改权限的A用户的token跑一遍;
3、使用未带有权限的B用户的token跑一遍。
具体操作如下(使用JMeter):
1、新建一个HTTP信息头管理器,将请求头必须变量写入(token);
2、将整理的所有重要接口分别新建http请求并写入;
3、使用带有权限的token跑所有接口,全部可以执行;
4、使用未带有权限的token跑所有接口,全部不可以执行;
5、找到有横向越权问题的接口,整理并反馈给开发。
身为一个测试人员,在新需求有新增接口的情况下,思考的不仅是新增功能的实现,还有接口性能和安全,如果提前测试,就可以减少更多线上问题反馈。
例:新增一个删除资产功能。
-
功能:能正常删除、批量删除,数据库,存储对应资产均被删除。
-
性能:批量100,200,300等梯度删除。
-
安全:使用一个账号的token执行删除另一个账号的资产是否成功。
出现问题:使用一个账号的token执行删除另一个账号的资产成功。
解决方法,前端在执行删除操作时传入userid,后端通过token和userid作比对。
最后:下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。