目录
引言
刚开始接触接口业务安全测试概念时,我有些茫然,是接口测试呢,还是业务功能测试。其实吧,他是两者兼有,目的就是为了提高接口的安全性,在源头上防范业务风险。
众所周知,接口的参数是由前端传过来,再提交至后台的。前端系统一般都针对实际的业务规则进行了输入控制,那么还有必要进行接口参数的测试吗?答案当然是肯定的,因为在前后端系统调用过程中,特别是针对客户服务系统前后端交互过程中涉及报文拼接、传输等环节,报文很有可能被篡改,导致业务风险,而后端系统又很难直接识别到是否被篡改,所以有必要对接口的输入信息进行检查,提高业务的安全性。
越权概念
水平越权
如下图:用户A和用户B权限属于同级,正常情况下各自账号登陆系统后只能查看本账号的相关信息,但是用户A通过非法篡改接口报文将账号A更改为账号B,就可以非法获取到账号B的账户信息,这个情况就属于水平越权情况。
垂直越权
与水平越权不同,垂直越权是普通用户通过非法手段获取了管理员账号的权限,即越权后的权限高于自身初始访问能力权限。
测试用例设计
接口业务安全测试用例的设计主要从以下几个方面入手考虑:
1.正向用例功能是否符合预期
2.边界值、等价类等验证接口参数的边界值、异常值的容错性
3.根据实际的业务场景设计反向测试用例,检查接口是否具有有效的控制逻辑
4.越权测试用例,检查身份校验、权限控制相关检查是否完备
测试工具
接口测试工具的选择上,常见的有Postman、Jmeter、Selenuim等,可以根据实际的工作需要和习惯进行选择。
实例
下面列举几个常见的接口安全测试的实例。
1.选择框数据有效性
新建用户页面,用户账号、用户姓名为输入框,角色、部门为下拉选择框,接口传值时传入的是手工填写的用户账号、用户姓名,下拉选择的角色id和部门id
测试时,直接通过接口绕过部分字段选择限制,发送请求,样例如下:
{"