一、API基础知识
1、什么是API
Application Programming Interface (应用编程接口)
API使用场景:系统功能调用
在windows平台,用JAVA代码实现文件的功能
实现层次:从低到高
1、Windows操作系统根据硬件的架构,提供了现成的操作系统结构
2、Java语言的核心类库调用了Windows操作系统的结构
3、我们直接调用了Java编程语言的API(import一下即可),实现了文件读取
API使用场景
- 数据交换:API接口可以通过定义一定的数据格式和协议,实现不同系统之间的数据交互
- 应用集成:如果一个应用需要另外一个应用的数据或者功能,可以通过API接口来实现应用之间的集成。
- 数据分析:API接口可以帮助用户获取大量的数据,并对这些数据进行分析处理。
- 自动化任务:API接口可以让程序实现自动化操作,提高工作效率。
- 移动应用开发:API接口可以提供各种数据和服务,帮助开发者快速构建移动应用。
系统功能调用
(封装分层思想)
API使用场景:前端调用后端
前端耦合
API使用场景:系统内部相互调用
企业间的相互调用
API和SDK
Software Development Kit 软件开发工具包,通常SDK里面会包含很多API
2、API规范
API格式:
1、服务器地址(IP以及端口)
2、通信协议(例如 http、tcp、MQ((消息中间件)生产者、消费者))
3、endpoint (接口的URL地址)
4、版本
5、消息格式
6、请求响应字段描述
7、响应码
8、接口安全要求
OPEN API MAP
https://openapi-map.apihandyman.io/
API类型:
1、SOAP/WebService(HTTP+XML)
2、GraphQL API
https://graphql.bootcss.com/learn/
3、RESTful API(HTTP+JSON)
Representational State Transfer:表述性状态传递
http://restful.p2hp.com/
https://www.wenjiangs.com/doc/7a28swsy51mb
OPEN API 中文文档
https://openapi.apifox.cn/
3、API文档
API文档生成工具
Swagger
【工程示例】springboot_swagger
API文档示例
百度地图API
https://lbsyun.baidu.com/
FOFA API
https://fofa.info/api
钉钉API
https://open.dingtalk.com/document/ability/list
短信平台
https://unisms.apistd.com/pricing/standard
二、API安全概述
1、API安全的目标
网络安全、信息(数据)安全、应用安全
信息系统安全三要素(CIA)
1、机密性(Confientiality)
2、完整性(Integrity)
3、可用性(Availability)
2、威胁建模工具
常见的API风险
- 欺骗(Spoofing)
- 篡改(Tampering)
- 抵赖(Repudiation)
- 信息泄露(Information disclosure)
- 拒绝服务(Denial of service)
- .越权(Elevation of privilege)
3、API常见威胁
OWASP API TOP 10
1、水平越权漏洞(ID被遍历操作)
2、身份验证漏洞(重置邮箱漏洞)
3、操作了未被允许的字段(查询用户密码或更新用户ID)
4、高并发缺陷(DDoS)
5、垂直越权(普通用户使用管理员接口)
6、业务安全漏洞(薅羊毛、恶意退款)
API安全特点:API包括后端提供给前端的。提供给公司内部其他系统的。提供给其他公司的。提供给大众用户的。
- 入口更多
- 更新变化更多
- 无法靠参数过滤防护
4、API安全测试检查表
API安全测试的31个Tips:
https://www.cnblogs.com/Eleven-Liu/p/15814543.html添加链接描述
API安全主要测试工具:
Burp Suite及相关插件:拦截、改包、发包、接口提取
Postman:HTTP发包
JMeter:性能测试
Fiddler:抓包
Python: requests
JSFinder: 接口地址提取工具
小程序、APP逆向
版权归原作者 学无止境xq 所有, 如有侵权,请联系我们删除。