1. 程式人生 > >介面安全保護策略

介面安全保護策略

服務端對外開放API介面,尤其對移動應用開放介面的時候,更需要關注介面安全性的問題,要確保應用APP與API之間的安全通訊,防止資料被惡意篡改等攻擊。
對於移動應用來說,服務端開放的介面極有可能一些別有用心挖出了,其實很難避免介面暴露到公網去,所以服務端在介面設計層面就必須加以考慮。下面就簡單列舉幾種措施來對付介面安全問題。

Token機制

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

資料校驗

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

過載保護

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

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

HTTPS

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

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