接口安全测试

本文探讨了后台接口的不同分类(如RESTful和SOAP),强调了HTTPS和SSL的重要性,并详细介绍了接口安全设计原则,包括使用签名、参数校验、用户权限管理和过载保护。同时,还提到了常见的安全威胁如SQL注入、XSS攻击和CSRF,以及如何防止这些攻击。最后,分享了自动化测试的学习资源。
摘要由CSDN通过智能技术生成
一、后台接口分类

1、接口类别:restful(json) soap(xml)

2、协议 :http https(ssl)

3、restful接口请求类型

get操作是安全的

post的操作是不安全的 同put

delete也是不安全的

4、现状和问题

大部分APP的接口都采用restful架构,restful最重要的一个设计原则就是客户端与服务端的交互在请求之间是无状态的。大部分都采用token的认证方式。

token分别在两台手机上登陆微信

二、接口安全设计原则

1、接口类型尽量使用https带SSL证书模式

2、接口参数使用签名(非对称加密算法)

3、接口参数需要校验

注册:注册机

4、每次请求需要用户命令

5、多次失败后需要有锁定机制

6、接口对应用户权限,用户只能调用有权限的接口

用户的权限

接口权限:系统有多个模块,每个模块有多个接口,我只购买了2个模块的服务,只分配两个模块的接口来使用---license

7、系统接口做过负荷机制用来保护系统安全

过负载----保护系统,再好的系统也有瓶颈,超过请求后提示系统忙

(1)提交请求后立即提示系统忙

(2)提交请求后一段时间后提示系统忙

静态:

动态:

三、接口安全设计注意事项:

1、对用户任何输入的都需要注意

2、不能只在客户端进行校验

3、服务端返回的任何服务错误信息不要返回给用户

四、常用接口安全测试类

1、sql注入

(1)sql拼接:jdbc/obdc ----链接数据库

select * from userInfo where userId=1 ---查询id为1的用户

sql = sql + condition

(2)使用第三方组件,比如java里面的hibernate,ibatis,jpa

通过各种sql查询业务信息,甚至破坏系统表

(3)sql注入注意事项:

1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和双"-"进行转换等。

2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。

3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。

4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。

5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装

2、xss攻击

(1)描述:利用XSS的攻击者进行攻击时会向页面插入恶意Script代码,当用户浏览该页面时,嵌入在页面里的Script代码会被执行,从而达到攻击用户的目的。同样会造成用户的认证信息被获取,仿冒用户登录,造成用户信息泄露等危害

(2)安全风险:文字中可以输入js脚本,例如<script src=‘wrong URL’></script>这种有安全性的脚本,其它用户进入后可以获取该用户的cookie信息,即可以对该用户资源进行操作

3、越权访问

(1)描述:在一个产品中,一个正常的用户A通常只能够编辑自己的信息,别人的信息无法查看或者只能查看的权限,但是由于程序不校验用户的身份,A用户更改自己的id值就进入了B用户的主页,可以查看、修改B用户的信息,这种漏洞我们就将其称之为越权漏洞

(2)举例:用户登录app成功,系统记录用户id,例如userid为1。

安全风险:此时用户通过工具发送消息将userid设置为2后可能登陆成功,及用户可以通过修改userid来访问其它用户资源,引发严重问题。

4、csrf 请求伪造

(1)描述:CSRF是一种对网站的恶意利用,过伪装来自受信任用户的请求来利用受信任的网站。

(2)举例:在APP上打开某个网站时,突然弹出您已经中奖的提示和链接

安全风险:点开链接后会跳转到对应异常界面,并且用户本地信息可能已经被获取,如果在跳出界面进行相关操作,比如银行相关操作会引起更大的安全问题和严重损失。

(3)安全防护

1. 使用post,不使用get修改信息

2. 验证码,所有表单的提交建议需要验证码

3. 在表单中预先植入一些加密信息,验证请求是此表单发送

learn to fail, failure to learn

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助

 视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

  • 23
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值