如何為網站設計安全的 API 訪問?
我們在設計一個網站或平臺的時候,經常需要向用戶開放 API 訪問。這樣用戶就可以程序化地調用一些功能,舉幾個例子:
當我們向用戶開放 API 訪問時,我們需要確保每次 API 調用都經過鑒權。這意味著我們需要確認用戶是他們所聲稱的身份。
我們一般使用兩種常見的方法來進行鑒權:
下圖說明了它們的工作原理。
用戶在客戶端輸入密碼,然后客戶端將密碼發送到鑒權服務器。
鑒權服務器驗證密碼并生成一個有有效期的令牌。
現在,客戶端可以發送請求,使用 HTTP 頭中帶有的令牌訪問服務器資源。這種訪問在令牌過期前一直有效。
這種機制通過使用哈希函數(SHA256 或 MD5)生成消息驗證碼(簽名)。
服務器生成兩個密鑰,一個是公共 APP ID(公鑰),另一個是 API Key(私鑰)。
現在我們在客戶端生成一個 HMAC 簽名(hmac A)。該簽名是根據圖中列出的一組字段生成的。注意這里會加入請求的時間戳,這樣一個 HMAC 簽名是有有效期的,不會一直有效。
客戶端發送請求來訪問服務器資源,HTTP 頭中包含 hmac A。
服務器收到包含請求數據和鑒權標頭的請求。它從請求中提取必要的字段,并使用存儲在服務器端的 API Key 生成簽名(hmac B)。
服務器會比較 hmac A(在客戶端生成)和 hmac B(在服務器端生成)。如果兩者匹配,請求的資源將返回給客戶端。
本文鏈接:http://www.www897cc.com/showinfo-26-35585-0.html如何設計安全的 API 調用?
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 埋點數據可視化的探索與實踐