Dotpe 為印度各地的餐廳提供廣泛使用的二維碼菜單服務,通過提供非接觸式訂購為客戶提供數字體驗。但是,他們的 API 設計和實現暴露了明顯的安全漏洞。好奇的客戶可以訪問敏感的餐廳數據,例如正在進行的訂單、購買歷史記錄,甚至其他顧客的個人詳細信息。他們可以通過調整基本 API 參數和下欺詐性訂單來查看餐廳收入數據。

雖然這種情況令人震驚,但不幸的是,這種情況很常見。沒有得到充分保護的 API 會暴露本應保密的數據,并產生巨大的濫用可能性。

API 安全中的嚴重故障

缺乏身份驗證:Dotpe 使許多 API 端點未經身份驗證,允許任何人訪問敏感數據。強身份驗證對于每個 API 都是必不可少的。

參數使用不當:對 ID 和電話號碼的簡單更改會讓未經授權的用戶訪問數據。API 需要驗證和清理所有輸入。

速率限制:Dotpe 的 API 沒有速率限制,允許用戶從數千家餐廳快速抓取數據。速率限制對于防止濫用至關重要,尤其是對于公有 API。

監控和警報:如果 Dotpe 一直在監控其 API 流量是否存在異常活動,則它本可以更早地檢測并解決問題。適當的監控對于跟蹤異常的使用模式至關重要。

確保公共 API 安全的戰術修復

如果您的 API 已經面臨潛在的濫用風險,如何在不對 API 進行重大更改的情況下快速增強安全性?有多種方法可以在不改變面向公眾的界面的情況下加強 API 的防御。

實施強身份驗證和授權

確保每個端點都需要用戶身份驗證。這可以包括 API 密鑰、OAuth 令牌或基于會話的令牌。對于敏感數據應考慮多重身份驗證(MFA) 。

輸入驗證和清理

驗證所有傳入數據以確保其符合預期參數。確保只有授權用戶才能執行操作和訪問數據。

速率限制和節流

速率限制可以防止 API 濫用。對用戶在特定時間范圍內可以請求的數據量設置限制,以避免系統刮擦或過載。

基于地理的白名單

如果您的 API 主要為特定位置的用戶提供服務,則地理圍欄可以減少暴露。限制對特定城市或國家的 API 訪問可以幫助阻止外國攻擊。但是,請確保這不會阻止合法用戶在不同位置使用 VPN 或移動網絡。考慮后備機制,例如針對區域外訪問的附加身份驗證。

全面的日志記錄和監控

為所有 API 交互實現日志記錄。實時監控以檢測可疑行為,例如大量數據提取或失敗的登錄嘗試。

安全設計

安全不應該是事后才想到的。確保安全性是開發過程的一部分,即使您需要在啟動后更新 API。將安全性構建到 API 核心比稍后修補更便宜、更有效。

Dotpe 案例強調了從第一天起就保護 API 安全的必要性。沒有一個擁有公共 API 的企業希望在 Hacker News 上看到它的缺陷。雖然公共 API 對于擴展業務至關重要,但必須保護它們免遭潛在的濫用。

原文鏈接:Securing Public APIs Without Breaking Them: Lessons from the Dotpe Case

上一篇:

Excel中,創建一個公式來調用ChatGPT API并返回結果

下一篇:

用ASP.NET Core 給你的API接口打造一個自定義認證授體系
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費