在微服务测试过程中,关于接口的功能和性能测试目前有很多解决方案,而对于接口的安全机制以及其测试方法并没有太多的资料介绍,在这里我会对相关内容进行介绍帮助大家解决接口安全测试的问题!
接口安全机制
主要包括以下几个方面:
- 认证:确保你的用户或客户端真的是他们自己。
- 授权:确保每个针对API的访问都是经过授权的。
- 审计:确保所有的操作都被记录,以便追溯和监控。
- 流控:防止用户请求淹没API。
- 加密:确保出入API的数据都是私密的。
下图会对我们理解接口的安全机制有很大的帮助,最右面是我们提供的API,最左边是用户,在这二者之间需要我们加入安全机制。
接口安全测试点
加密贯穿始终:api中包含的数据必须是加密的。
测试点:对接口进行抓包处理,核心数据是必须加密的。需要跟研发人员确认加密算法不能是常用的加密算法。
流控:通过应用系统层面来防止黑客使用DDos攻击,导致应用系统长时间不能响应正常用户的访问请求。
测试点:使用压力测试工具(例如jemeter),某一时间段频繁调用接口,看是否符合流控方案,例如:
1.一秒钟同一个IP可以调用几次接口\请求多大带宽
2.调用失败后的响应信息
3.ip是否加入黑名单
认证:使用cookie、session、token、密钥等认证机制
测试点:
- 接口中携带错误的cookie 、session、token、密钥
- 接口中携带过期的cookie 、session、token、密钥
审计:通过对接口请求的日志记录,实现对非法请求的溯源
测试点:查看调用api后,调用信息是否被记录在日志中并且频繁调用是否在日志中记录准确。
授权:一般通过使用ACL访问控制(通过给不同用户访问权限实现)或使用rbac(基于用户、角色、权限关联关系实现)。
测试点:不同角色是否具备api的使用权限,例如普通用户不能使用管理员专用的API