淺談接口安全那些事

服務端對外開放API接口,尤其對移動應用開放接口的時候,更需要關注接口安全性的問題,要確保應用APP與API之間的安全通信,防止數據被惡意篡改等攻擊。

對于移動應用來說,服務端開放的接口極有可能一些別有用心挖出了,其實很難避免接口暴露到公網去,所以服務端在接口設計層面就必須加以考慮。下面就簡單列舉幾種措施來對付接口安全問題。

Token機制

開放接口時最基本需要考慮到接口不應該被別人隨意訪問,而我也不能隨意訪問到其他用戶的數據,從而保證用戶與用戶之間的數據隔離。這個時候我們就有必要引入Token機制了。具體的做法: 在用戶成功登錄時,系統可以返回客戶端一個Token,后續客戶端調用服務端的接口,都需要帶上Token,而服務端需要校驗客戶端Token的合法性。Token不一致的情況下,服務端需要攔截該請求

對數據進行校驗

服務端從某種層面來說需要驗證接受到數據是否和客戶端發來的數據是否一致,要驗證數據在傳輸過程中有沒有被注入攻擊。這時候客戶端和服務端就有必要做簽名和驗簽。具體做法:** 客戶端對所有請求服務端接口參數做加密生成簽名,并將簽名作為請求參數一并傳到服務端,服務端接受到請求同時要做驗簽的操作,對稱加密對請求參數生成簽名,并與客戶端傳過來的簽名進行比對,如簽名不一致,服務端需要攔截該請求**

過載保護

服務端仍然需要識別一些惡意請求,防止接口被一些喪心病狂的人玩壞。對接口訪問頻率設置一定閾值,對超過閾值的請求進行屏蔽及預警。

異常封裝

服務端需要構建異常統一處理框架,將服務可能出現的異常做統一封裝,返回固定的code與msg,防止程序堆棧信息暴露。

HTTPS

HTTPS能夠有效防止中間人攻擊,有效保證接口不被劫持,對數據竊取篡改做了安全防范。但HTTP升級HTTPS會帶來更多的握手,而握手中的運算會帶來更多的性能消耗。這也是不得不考慮的問題。

總得來說,我們非常有必要在設計接口的同時考慮安全性的問題,根據業務特點,采用的安全策略也不全相同。當然大多數安全策略更多的都是提高安全門檻,并不能保證100%的安全,但該做的還是不能少。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容