什么是 API 调用?

API 调用(或 API 请求)允许一个应用程序从另一个应用程序请求数据或服务。大多数 Web 应用程序都会定期进行 API 调用。

学习目标

阅读本文后,您将能够:

  • 定义 API 调用
  • 了解 API 调用的使用方法
  • 了解攻击者如何使用 API 调用

相关内容


想要继续学习吗?

订阅 TheNET,这是 Cloudflare 每月对互联网上最流行见解的总结!

参阅 Cloudflare 的隐私政策,了解我们如何收集和处理您的个人数据。

复制文章链接

什么是 API 调用?

应用程序编程接口 (API) 是一个程序与另一个程序交互的一种方式。API 调用是它们交互的媒介。API 调用(或 API 请求)是发送到服务器的消息,要求 API 提供服务或信息。

如果 Jan 招待很多客人共进晚餐,她可能会打电话给餐饮公司,要求他们为聚会准备食物。这节省了她自己准备食物的大量时间和精力。类似地,一个应用程序可以“调用”另一个应用程序来获取所需的数据或功能。这确保了开发人员不必花费时间和精力来构建可以通过 API 集成的应用程序功能。

由于 API 已集成到当今几乎所有的 Web 应用程序中,API 调用一直在幕后进行。假设有人在旅游网站上搜索公交车票。旅游网站向各个巴士公司的服务器发送 API 调用,并接收有关可用乘车服务和费用的信息。从用户的角度来看,这个过程应该几乎是瞬时的。

API 调用会去到哪儿?

API 调用从客户端传输到 API 端点。API 端点是 API 调用的目的地——最常见的是 Web 应用程序和服务器。例如,移动客户端会生成一个 API 调用,该调用会转到 API 端点,即服务器。服务器接收 API 调用,对其进行处理,执行请求并发送响应。

当 Jan(来自上面的类比)打电话给餐饮公司时,她通过拨打电话号码来打电话。类似地,API 调用指向统一资源标识符 (URI)。

URI 是标识资源的标准化方式,就像电话号码标识电话线路一样。识别的资源可以是网站、应用程序、服务器、电子邮件联系人,甚至是现实世界的项目。

对于 Web API,URI 通常是统一资源定位符 (URL)。URL 是一种用于标识互联网位置(如网站或服务器)的 URI。URL 必须包含用于访问它的应用程序层协议,例如 HTTP。网页地址写为 URL,例如“https://www.cloudflare.com/learning”。API 端点也是 URL。

大多数 Web API 使用 HTTP,因此它包含在 API 端点的 URL 中。例如,基本的 Cloudflare API 端点是“https://api.cloudflare.com/client/v4/”(了解更多)。基于 HTTP 的 API 调用使用 GETPOSTPUT 之类的 HTTP 动词(请求类型)来指示他们需要来自 API 端点的哪些服务或资源。

API 调用如何用于攻击?

与任何暴露在互联网上的东西一样,API 容易受到来自各种来源的攻击。攻击者可以通过多种方式使用 API 调用来攻击 API,包括:

  • 拒绝服务 (DoS)分布式拒绝服务 (DDoS) 攻击:这种类型的攻击拒绝向 API 的其他用户提供服务。攻击者可以使用大量 API 调用来淹没 API,或者以一种长期占用服务器的方式构建 API 调用。
  • 漏洞利用:攻击者可以尝试发送 API 调用,利用 API 中的缺陷诱骗服务器泄露其不应该泄露的数据、以非设计的方式执行,或给予他们未经授权的访问。

这些攻击和其他攻击会对提供 API 服务的组织产生负面影响。

如何保护 API 免受无效 API 调用的影响

以下策略有助于让 API 保持安全

  • 了解和跟踪 API 端点:维护生产中所有 API 端点的更新列表。
  • 验证 API 客户端身份验证可确保 API 调用来自合法客户端。有几种方法可以做到这一点,但最有效的方法之一是双向 TLS,这是一种身份验证方法,其中每个 API 端点使用公钥加密来验证另一个端点。
  • 验证 API 架构:API 的架构就像它的使用规则。如果 API 调用不遵循架构,则可能是恶意尝试利用 API。 API 架构验证有助于识别和阻止无效的 API 调用。
  • 使用DDoS缓解:DDoS 缓解提供商可阻止或吸收过多的请求,以避免服务器不堪重负。Cloudflare 就是这样的提供商之一。

更深入地了解 API 安全。或者,阅读有关 Cloudflare API Shield 的信息,该服务可以保护 API 免受各种攻击。