首頁>技術>

隨著移動網際網路的興起,現在的APP開發模式都是APP + api模式,如圖

由於app和api需要通過網路通訊,api一般都是直接 對外的,所以api的訪問安全就很重要了,api沒有任何限制,或只有很簡單的防護措施,這是很多新手容易犯的錯誤,一個漏洞,就可能讓你的系統崩潰,資料洩露!

所以網路安全顯得越來越重要了,api安全措施有很多,常用的如https、資料加密、url資料簽名等方法。api防刷也屬於介面安全的範疇。

基本分兩種情況

1. 惡意訪問

使用工具進行不停的迴圈訪問,佔用系統資源,影響系統正常的對外服務

2. 支付介面、簡訊傳送介面等,

這種介面直接會導致企業的損失,更要注意。

魔高一尺道高一丈,我們常用措施

1. 根據ip限制訪問頻率

限制訪問,訪問的時候記錄使用者IP

寫到redis中,以ip為鍵,每次訪問+1,有效期一個小時;

每訪問一次就給這個IP+1,比如限制1w次,加到1W次就拒絕訪問,直到記錄過期,

這種方式簡單粗暴,對於惡意攻擊、爬蟲抓取很有效果,但難免會有誤傷,影響正常的訪問請求。

2.驗證碼

通過驗證碼,可以限制很多的非法的介面訪問了。

3. 限制傳送頻率

我以前做系統 ,也是對同一手機號傳送有限制,同一功能的驗證碼限5次,所有功能限10次,這樣一個手機號就刷不了很多了。

3. 後端邏輯驗證

如果別人通過抓包完全看到你的請求,傳送了完全相同的引數,進行重放攻擊,如何防範呢?

這種可能訪問被人抓了包,也可能是使用者連續提交,簽名和 access token這些措施是無效的。這時就需要server端進行判斷了。

充值支付類的api,對訂單的狀態加以判斷,已處理過的訂單,不再重複處理。

增加時間戳,對於過期的請求不再處理。

4. 介面訪問監控

一般來說,我們會有api訪問監控,如果一個 ip訪問頻率異常,如果達到一定數量,我們可以系統報警通知管理員,將損失降到最小。

單一措施,很難完全做到介面安全,我們要綜合運用多項措施,才能做到萬無一失!

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • win10下使用Linux(ubuntu18.04)