什么是接口业务安全测试顾名思义谱的“零信任原则”

一、什么是接口业务安全测试

业务安全测试是根据业务需求,根据业务安全规则进行的系统功能测试。作为系统功能测试的重要组成部分,业务安全测试同样适用于接口测试过程。与系统漏洞扫描、SQL注入防范等技术安全测试不同,接口业务安全测试更注重程序逻辑本身的检查、验证、控制等功能,保证业务规则的安全。比如在银行业务中检查客户信息的有效性、账户信息的一致性等。

二、为什么要做接口业务安全测试

顾名思义,业务安全测试的目的自然是防范业务风险,提高接口的业务安全性。之所以对接口测试再次强调业务安全测试,就不得不提一个众所周知的“零信任原则”。

所谓零信任原则是指后端系统不信任前端提供的请求消息。简单来说,作为后端服务商,我们始终保持着“总有前端想害我”的“迫害妄想症”,认为前端发送的消息不可靠。

当然,这并不意味着前端系统真的不可靠。许多系统前端都对业务规则进行了详细的检查和控制。这也是系统功能测试过程中最常设计的测试场景。那么为什么我们需要在接口测试中再进行一次业务安全测试呢?那是因为前后端系统调用,尤其是客服系统的前后端交互,涉及到消息组装、传输等环节,很可能被“坏人”利用别有用心地篡改消息,造成经营风险。. 在某些交易场景下,后端系统很难识别收到的消息是否被篡改。所以,需要对输入的信息进行必要的检查和验证,以提高业务安全性。当然,消息可以通过各种技术手段进行处理。进行防篡改控制,这是技术安全级别的内容冗余测试是什么意思,这里不再展开。

在业务安全测试过程中,我们经常提到“未授权访问”。

例如,用户登录系统后查询自己的账户信息是一个正常的过程。如果在此过程中,用户通过篡改消息将自己的账号更改为别人的账号,从而获取了他人的账号信息,这就是越权访问中的“横向覆盖”。即用户利用系统漏洞访问具有相同权限的其他用户的隐私数据。

与之相伴的是“垂直覆盖”,即用户通过身份冒充等方式获得高于自身级别的访问权限,如管理员权限。

三、接口业务安全测试怎么做

1.需求分析

既然是业务安全测试,“业务”需求分析是必不可少的。与系统功能测试一样,接口的业务安全测试需要我们根据业务需求细化业务规则,梳理权限需求,设计测试场景。但是由于接口的抽象,我们还需要另外一个非常重要的信息来帮助我们设计测试用例,那就是接口设计文档。

界面设计文档一般应包括以下几部分:

·接口功能介绍

简单介绍一下接口的基本功能。

·输入输出参数说明

这部分包括接口参数的字段类型、长度、取值范围等信息,是我们使用边界值等方法设计案例的重要信息来源。

同时,还有一个界面设计原则是我们需要重点关注的,那就是“最低要求”原则。这里的最小必要原则可以用两种方式来理解。一方面,就界面的输入而言,就是从前端获取尽可能少的输入信息,尤其是通过用户输入的方式。这一点与上文提到的“零信任”迫害妄想症是一致的——输入的东西是不可靠的,那些可以通过后端系统从数据库中获取的东西,不需要前端输入。另一方面,接口的输出在满足要求的同时最大限度地减少了冗余信息,从而避免了不必要的信息暴露。

·接口功能规则说明

接口的主要功能、业务规则等应该在这里描述一下,这是我们设计场景的关键参考。

·错误信息说明

在接口业务安全测试中,为了验证各种业务规则和权限控制,反向案例会占据很大比例。因此,错误信息的描述是我们在测试过程中需要密切关注的,需要不断与开发沟通的。毕竟,我们怎么知道在案例的预期结果中我们想要的错误信息就是我们想要的呢?哈哈。

2.案例设计

总结以上描述,接口业务安全测试用例的设计可以从以下几个方面入手:

· 验证转发功能是否符合预期。

·边界值、等价类等方法测试接口参数的边界值和异常值,验证接口的容错性。

·根据业务规则设计相应的逆向案例,检查接口是否有相应的有效控制逻辑。

·设计超权限案例冗余测试是什么意思,检查身份验证和权限控制相关的检查是否齐全。

3.测试工具

对于接口测试,有Postman、Jmeter、Selenium等多款消息和自动化测试工具可供选择,可以根据自己的需求和习惯进行选择。

四、接口业务安全测试谁来做

接口业务安全测试谁来做?我们从两个角度来看这个问题:

接口消费者与接口服务器

作为调用接口的消费者,应该对接口提出明确的功能需求,就像业务人员向开发人员提出系统功能需求一样。因此,消费者在测试过程中更加关注接口功能是否满足自己的需求。

作为提供接口的服务提供者,提供的接口不仅要满足服务提供者的功能需求,还要对输入的合法性、业务规则、权限控制、身份认证等进行检查,提高接口的业务安全性.

因此,从系统层面来说,接口业务安全测试应该由服务端完成。

测试与开发

在一个项目过程中,涉及到接口测试,往往与模块逻辑层面的调度和调试相关联,而涉及到单元测试,则是开发人员的工作。但是,我们这里说的接口业务安全测试,是从业务规则的角度对接口进行的功能测试。接口业务安全测试和单元测试的区别,就像系统功能测试和集成测试的区别一样。测试和开发的关注点是不同的。因此,接口业务安全测试和接口单元测试不能相互替代。

另一方面,为了提高接口服务的安全质量,也需要在接口设计上开发更多的大脑。例如,在接口设计阶段应考虑接口的“最低要求”原则,并与测试进行沟通。如果等到交付测试再考虑这个问题,往往事与愿违,修改难度更大。

目前,随着软件系统架构和技术的不断升级和优化,对系统测试的要求越来越高,系统功能测试、系统性能测试、技术安全测试、业务安全测试、接口测试、等等,不断考验我们测试人员的能力和智慧。

**文末福利——给大家推荐一个“Python自动化测试学习交流群”:

请关注+私信回复:“今日头条”,即可免费获得软件测试学习资料,同时进入群学习交流~~

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论