API接口原理、请求方法、类型、安全校验方法
API接口原理、请求方法、类型、安全校验方法
目录
一、接口定义:
外部系统与系统之间、以及内部各子系统之间的交互点。
外部接口、内部接口(包括上层服务与下层服务接口、同级接口)
二、API接口原理:
即应用程序编程接口(是一类服务的封装,不单只一个),类似于编程里边的模块调用一样,通过特定的API接口就可以实现某些特定的功能(实现计算机软件之间的相互通信)。封装起来后直接调用,就可以不再需要重现开发。
三、接口请求方式(以http为例)
3.1、使用:
使用何种类型请求方式取决于业务需求
3.2、常见的:
GET(请求数据)、POST(提交数据)、PUT(修改)、DELETE(删除)
3.3、全面的:
GET——读取数据(只读)
POST——提交表单、上传文件等数据(创建)
PUT——提交数据(修改)
DELETE——请求删除(删除)
HEAD——与GET类似,但服务器不返回body,仅返回头(可查看修改日期)
OPTIONS——服务器返回资源支持的HTTP请求方法(请求方法)
TRACE——回显服务器收到请求(诊断和测试)
CONNECT——预留给能够将连接改为管道方式的代理服务器
3.4、get型
3.4.1、使用:
用”?”连接,多个参数间用”&”连接(URL末尾)
3.4.2、应用:
eg:请求数据:查询,菜单列表,搜索等数据的请求。
3.4.3、特点:
数据量较小,返回速度快,接口暴露在外,存在风险
3.5、post型
3.5.1、使用:
特定地方(提交、上传的地方)提交数据来进行请求
3.5.2、应用:
eg:注册、上传、等功能
3.5.3、特点:
请求数据量大,安全性要求高。
四、API接口
4.1、接口类型:
接口 协议 描述 HTTP 接口 HTTP协议 使用广泛、轻量级、跨平台、跨语言
(GET、POST、DELETE、PUT等,“网址”形式)
RPC 接口 HTTP、TCP、UDP、自定协议 远程过程调用,是一种Client/Server模式
将一部分代码逻辑放在远程服务器上部署,支持多种数据传输方式(Json、XML、Binary、Protobuf等)
Web Service 接口 基于http协议的soap协议的封装和补充 是一种服务导向架构的技术,通过标准的Web协议提供服务
以WEB形式提供的服务称为Web Service,所以像RESTful、XML-RPC、SOAP等都可以当成是Web Service的一种实现方式。
RESTful HTTP协议 资源在网络中以某种表现形式进行状态转移
是一种设计准则,用不同的HTTP动词(GET、POST、DELETE、PUT等)的不同请求。
WebSocket udp、tcp 底层的、双向通信协议 ,客户端和服务器端间信息实时交互 FTP TCP/IP 协议组中的协议之一 文件传输协议,FTP协议包括两个组成部分,其一为FTP服务器(存储文件),其二为FTP客户端。
4.2、接口响应机制
类型 描述 区别 示例 同步交互 发送一个请求,需要等待返回,然后才能够发送下一个请求 需要等待 即用户行为请求成功后(如登录),需要返回验证结果后,才能登录成功。 异步交互 发送一个请求,不需要等待返回,随时可以再发送下一个请求 不需要等待 即用户行为请求成功后,系统收到请求后异步同步结果,调用方无须等待每个请求的调用结果
4.3、一般接口基本组成
确定业务用途---->确定接口请求类型、响应机制等
4.3.1、应用
接口适用的场景,明确接口的业务用途
4.3.2、参数
接口请求所需要的变量参数(必填参数+非必填参数)
非必填并无用,未填即自动设置为默认的参数
五、接口安全校验
5.1、一般方法:
分类 描述 用户令牌 有效识别用户的身份,为用户接口返回用户相关的数据
用户相关操作:密码修改等与用户身份相关
安全签名 签名参数是经过安全一定规则的加密的,服务器收到数据后也经过同样规则的安全加密,确认数据没有被中途篡改后,再进行数据修改处理。
可以为不同接入方式,指定不同的加密秘钥(双方约定的,不在网络上传输),连接传输的一般是接入的AppID,服务器通过AppID来进行签名参数的加密对比
公开接口调用 不需要传入用户令牌、或者对参数进行加密签名,这种接口一般较少,只是提供一些很常规的数据显示而已。
5.2、请求来源合法性
接口的伪装攻击
在公网环境中,接口是对外(暴露),可能收到恶意非法请求,需要知道这个请求的来源,这个请求来源不能否认(合法请求也要知道来源)
不可否认:通过“签名”
5.3、请求是否被篡改(防截取后篡改)
不使用明文方式传输的,否则一旦被恶意截取,会造成极大风险。
防篡改:请求数据及返回数据需要加密(将token与时间戳一起打包加密)
常见的加密方法:
DES:速度较快,适用于加密大量数据
3DES:是基于DES,对数据用三个不同的密钥进行三次加密
RSA:非对称加密,支持变长密钥的公共密钥算法,需加密文件的长度也是可变的;既可以实现加密,又可以实现签名。
5.4、防重放攻击
顾名思义,多次的发送同一数据包,造成接口拥堵
防重放:在请求参数加上时间戳 + 随机数
- 点赞
- 收藏
- 关注作者
评论(0)