API安全

2023-09-20 17:23:17

1 API的简介

API代表应用程序编程接口,它由一组允许软件组件进行通信的定义和协议组成。作为软件系统之间的中介,API使软件应用程序或服务能够共享数据和功能。但是API不仅仅提供连接基础,它还管理软件应用程序如何被允许进行通信和交互。API控制程序之间交换请求的类型、请求的方式以及允许的数据格式。例如,智能手机上的天气应用程序使用API从提供天气信息的服务中获取每日天气信息。为了向用户及时提供天气更新,手机的天气应用程序通过API与该系统通讯。API就像应用或者服务的代理人使得应用可以与其他应用进行通讯,执行在线的任务。

随着云计算的出现以及单体式应用程序向微服务的转变,API已经变成数字世界的一个关键的元素。API可以是的应用程序可以相互交换信息,增加了应用程序的互联性。可以将一个大的应用分解成很多小的应用,这些小的应用可以通过API进行通信,完成一个大的业务流程或者功能。由于独立的业务被分开开发,再结合敏捷开发模式,是的业务的拓展变得越来越容易,也越来越快。

由于API的出现,加速了当今的应用的创新的速度。特别对于Mobile和IoT设备的发展,API是最关键的一环,成为现代应用程序的重要组成部分。

API可以使用具象状态传输(Representational State Transfer, REST)或简单对象访问协议(Simple Object Access Protocol, SOAP)构建,REST是一种用于开发web服务的架构风格,因其简单性而流行;SOAP是一种允许应用程序的分布式元素进行通信的消息协议。SOAP可以在各种低级协议上传输,包括与web相关的超文本传输协议(HTTP)。

2 API的类型

根据不同的标准实现的API,也可以分为:REST API,SOAP API和GraphQL API等。根据API提供接口的服务对象的不同,可以分来内部接口和外部接口,也可以成为公共接口和私有接口。

虽然内部接口和外部接口面向的威胁不一样,但是,还是建议能够根据统一的安全架构提高所有的API的安全性。因为,内部的接口可能被外部的接口调用,这样就等于内部接口可以间接被外部调用,内部接口如果有漏洞可以被利用,也可以通过外部接口来发起攻击。

3 API的安全

由于越来越多的业务逻辑通过API来实现,API也就接触到了应用程序内部的核心数据,如PII(个人身份信息),它已经成为基于Web的互动式的应用的程序的关键。API安全涉及企业数据的机密性、完整性和可用性。一旦API受到攻击,可能导致企业敏感数据泄露、业务中断甚至声誉受损。

此外,API安全还关系到用户隐私的保护。因此基于用户名和密码的基本的认证已经不能满足API的安全需求,更多的会使用各种各样的安全token,例如:MFA和API Gateway等。它也越来越多地成为攻击者的目标。随着,越来越多的攻击者更加关注API,尝试通过API的漏洞来攻击系统,因此由API的安全导致的攻击和安全事件也愈来愈多。

近年来,也发生了许多著名的API攻击事件,如Twitter API攻击、Equifax数据泄露等,都表明API安全不容忽视。

API的安全不仅需要通过网络层来保护,而且需要在实现层进一步保护。在实现时,针对恶意的输入进行严格地检测,识别出恶意的流量并丢弃,这样才能保护通过API传输的数据的保密性、有效性和完整性。

4 API安全的重要性

随着API的普及,API相关的安全问题也越来越受关注。根据调查https://rapidapi.com/report/state-of-enterprise-apis的调查结果可以知道,所有的参与调查的人都认为成功地执行API安全对公司的发展和成长很重要。这意味着API正在成为大多数现代应用程序的支柱,因此它们的安全性是现代信息安全的核心。

根据Salt Security的数据,在2022年,94%的组织的产品线上的API遇到了安全问题,五分之一的组织由于API的安全漏洞而遭受数据泄露。

API作为大多数云原生应用程序的后端框架,包括移动应用程序、web应用程序和SaaS以及内部、面向合作伙伴和面向客户的应用程序。由于API暴露了应用程序逻辑、资源和敏感数据(包括个人身份信息(PII)),因此它们已成为攻击者的目标。如果攻击者能够访问未受保护的API,他们就可以破坏业务,访问或破坏敏感数据,并窃取财产。

提高API安全性很重要,因为它可以防止一些常见的攻击,例如跨站点脚本(XSS)、SQL注入、代码注入,以及保护敏感数据不被泄露。总的来说,API安全性对于API及其支持的程序的成功和安全性能至关重要。

5 常见的API安全问题

OWASP TOP 10也在最近几年针对API安全

更多推荐

JavaScript学习记录 | DOM事件流 事件冒泡-事件捕获-事件委托

目录DOM事件流常见面试题事件冒泡与事件捕获事件冒泡使用场景事件捕获使用场景事件冒泡和事件捕获区别事件委托-利用事件冒泡机制事件委托应用场景支持事件委托的事件事件委托的优缺点DOM事件流DOM事件流的三个阶段:捕获阶段->目标阶段->冒泡阶段常见面试题事件冒泡和委托是什么?有什么使用场景?事件委托的优点和缺点JS事件绑

线性代数基础-矩阵

八、矩阵的基础概念1.矩阵我们忘掉之前行列式的一切,列一种全新的数表,虽然长得很像,但是大不相同,首先一个区别就是矩阵不能展开成一个值,这里不讨论矩阵的空间意义{a11x1+a12x2+a13x3+...+a1nxn=b1a21x1+a22x2+a23x3+...+a2nxn=b2...an1x1+an2x2+an3x

SQL sever中相关查询

目录一、简单查询二、条件查询三、别名查询四、分组查询五、排序查询六、去重查询七、分页查询八、模糊查询九、表连接查询十、子查询十一、嵌套查询一、简单查询简单查询是最基本的查询类型,用于从数据库中选择特定列或所有列的数据。1.选择所有列的数据:SELECT*FROM表名;将返回指定表中的所有行和列。2.选择特定列的数据:S

酌情参考——chatGPT给的一些语义框架的学术思路,语义和图谱结合似乎是个不错的方向

语义和图谱结合似乎是个不错的方向我在分析教师讲课的文本,以知识元和语义框架建模的话怎么分析合适ChatGPT分析教师讲课的文本并建立知识元和语义框架的模型可以帮助你理解教师的教学内容以及课程结构。以下是一些步骤和方法,可帮助你进行这种分析:数据收集:收集教师讲课的文本或音频记录,这些记录可以是课堂讲座、教材、学生笔记或

什么是IoT数字孪生?

数字孪生是资产或系统的实时虚拟模型,它使用来自连接的物联网传感器的数据来创建数字表示。数字孪生允许您从任何地方实时监控设备、资产或流程。数字孪生用于多种目的,例如分析性能、监控问题或在实施之前运行测试。从物联网数字孪生中获得的见解使用户能够快速做出反应,以提高运营效率、生产质量、客户满意度等。基于NSDT场景编辑器搭建

docker总结

Docker实用篇0.学习目标1.初识Docker1.1.什么是Docker微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题1.1.1.应用部署的环境问题大型项目组件较多

CLR via C#(三)垃圾回收

一、资源生命周期每个程序运行都需要各种资源,如文件、内存缓冲区、数据库等。要使用这些资源,就必须为代表资源的类型分配内存。访问一个资源所需的步骤如下:调用IL指令newobj,为代表资源的类型分配内存(在C#中一般用new操作符完成)初始化内存,设置资源的初始状态并使资源可用访问类型成员来使用资源摧毁资源状态以进行清理

多线程的学习第二篇

多线程线程是为了解决并发编程引入的机制.线程相比于进程来说,更轻量~~更轻量的体现:创建线程比创建进程,开销更小销毁线程比销毁进程,开销更小调度线程比调度进程,开销更小进程是包含线程的.同一个进程里的若干线程之间,共享着内存资源和文件描述符表每个线程被独立调度执行.每个线程都有自己的状态/优先级/上下文/记账信息进程是

Apache Tomcat

简介简而言之,Tomcat是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器。ApacheTomcatTomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支

Responder

环境准备操作系统:KaliLinux工具:responder,john,evil-winrmPS:输入以下命令解决靶场环境无法打开问题#echo"<靶机IP>unika.htb">>/etc/hostsresponder工具[Kali官网]手册地址:https://www.kali.org/tools/responde

NSS [HNCTF 2022 WEEK2]easy_sql

NSS[HNCTF2022WEEK2]easy_sql这题考察了无列名注入,首先了解一下什么是无列名注入再开始做题吧。为什么会需要无列名注入?我们常用的SQL注入方法是通过information_schema这个默认数据库来实现,可是你有没有想过,如果过滤了该数据库那么我们就不能通过这个库来查出表名和列名。不过我们可以

热文推荐