什麼是 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 呼叫指向 Uniform Resource Identifier (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 呼叫來自合法用戶端。有幾種方法可以做到這一點,但最有效的方法之一是 mutual TLS,這是一種驗證方法,其中每個 API 端點使用公開金鑰加密來驗證另一個端點。
  • 驗證 API 結構描述:API 的結構描述就像它的使用規則。如果 API 呼叫不遵循結構描述,則可能是惡意嘗試利用 API。API 結構描述驗證有助於識別和封鎖無效的 API 呼叫。
  • 使用 DDoS 緩解:DDoS 緩解提供者可封鎖或承受過多的要求,以避免伺服器不堪重負。Cloudflare 就是這樣的提供者之一。

更深入地瞭解 API 安全性。或者,閱讀有關 Cloudflare API Shield 的資訊,該服務可以保護 API 免受各種攻擊。