API接口原理、请求方法、类型、安全校验方法

举报
黑色地带(崛起) 发表于 2023/02/16 23:14:42 2023/02/16
【摘要】 API接口原理、请求方法、类型、安全校验方法

API接口原理、请求方法、类型、安全校验方法

 目录

一、接口定义:

二、API接口原理:

三、接口请求方式(以http为例)

3.1、使用:

3.2、常见的:

3.3、全面的:

3.4、get型

3.4.1、使用:

3.4.2、应用:

3.4.3、特点:

3.5、post型

3.5.1、使用:

3.5.2、应用:

3.5.3、特点:

四、API接口

4.1、接口类型:

4.2、接口响应机制

4.3、一般接口基本组成

4.3.1、应用

4.3.2、参数

五、接口安全校验

5.1、一般方法:

5.2、请求来源合法性

5.3、请求是否被篡改(防截取后篡改)

5.4、防重放攻击


编辑



一、接口定义:

外部系统与系统之间、以及内部各子系统之间的交互点。

外部接口、内部接口(包括上层服务与下层服务接口、同级接口)




二、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、防重放攻击

顾名思义,多次的发送同一数据包,造成接口拥堵

防重放:在请求参数加上时间戳 + 随机数

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。