深圳幻海软件技术有限公司 欢迎您!

在接口测试过程中常见的接口安全性问题,通用测试点整理归纳

2023-02-28

​我们日常的接口测试工作主要是验证接口的功能性(入参、出参、边界值等),我在接口测试过程中遇到的一些接口安全性的问题,整理成了通用的测试点,不一定适用于全部的产品,仅做参考。一、登录接口校验(1)验证登录接口中密码是否密文传输这个测试点听起来很荒唐,应该大家都知道密码应该加密,但是在很多时候,研发人

​我们日常的接口测试工作主要是验证接口的功能性(入参、出参、边界值等),我在接口测试过程中遇到的一些接口安全性的问题,整理成了通用的测试点,不一定适用于全部的产品,仅做参考。

一、登录接口校验

(1) 验证登录接口中密码是否密文传输

这个测试点听起来很荒唐,应该大家都知道密码应该加密,但是在很多时候,研发人员为了赶工就会忽略这个点,所以建议大家测试登录功能的时候,一定要F12查看一下登录接口中密码是否是密文。

(2) 验证登录接口是否可以爆破登录

对于一些安全性较高的系统,测试的时候有必要验证一下是否可以爆破登录,可以使用Burpsuit进行爆破登录测试。当然现在很多系统都是用手机号码进行动态登录,如果还是常规的账户和密码登录,就一定要对安全性提出质疑了,密码强度符合等保要求么?验证码要不要加上去?

二、接口规则校验

(1) 验证接口类型是否合理

理论上来说,除了查询接口使用GET,其余的接口都应该使用POST,这样接口的安全性更高。沐沐以往的接口测试过程中确实遇到了不少业务接口使用get,参数拼接在url上及其不安全。此外,还有一个特殊情况,即不需要用户登录的系统,查询类的接口也不建议使用GET,在安全扫描中会出现跨站点请求伪造的问题。

(2) 验证新增和修改接口是否是独立的接口

这个测试点有点离谱了,沐沐在测试过程中发现新增和修改接口共用同一个,这样似乎是没有什么问题,但是后期遇到了一些复杂的业务逻辑,新增和修改接口融合在一起,导致了生产数据被篡改。所以接口设计还是要严谨一点,新增和修改接口尽量是独立的接口。

(3) 验证POST接口中是否将参数拼接成URL

沐沐曾经还遇到过将post接口的参数拼接到了url上,如果数据量较大的时候,url字符长度太大接口就会报错,可能此类情况并不常见,但是遇到过就记录下来了。

三、接口越权校验

接口的越权分为水平越权和垂直越权,我们可以通过Burpsuit、Appcan等工具进行越权测试,测试过程中也遇到了以下问题:

  • 验证接口url上是否区域编码、身份证号等参数;
  • 验证接口url上存在true或false时,进行篡改,功能、数据是否越权;
  • 验证接口url上存在type=1或2时,进行篡改,功能、数据是否越权;
  • 接口参数中存在pagesize或者size时,进行篡改,是否进行最大值限制;
  • 接口body参数中存在身份证号码时,篡改参数值,接口是否返回正确提示。​