關於APP與服務端通信數據安全的保障措施


對於前端app在與后台服務端交互過程中,如果不加相應措施,將很容易導致系統安全,穩定性方面的問題。如通信數據被抓包導致非法獲取后端的數據,惡意攻擊后端發出大量的無效請求導致后端服務癱瘓等。

對此,我們將針對不同的問題提出對應的解決方案。

  1. 防非法調用——身份認證
  2. 防抓包——數據加密
  3. 防重放攻擊——時間戳+隨機字符串
  4. 防篡改——簽名機制

防非法調用——身份認證

身份認證是指只有經過合法授權的用戶才能調用我們的接口,這里我們采用Token驗證機制。

APP與服務端的整個通信過程如下:

 

 詳細流程如下:

  1. 用戶首先需要輸入賬號密碼進行登錄;
  2. APP帶上用戶輸入的賬號密碼請求服務端登錄接口;
  3. 服務端校驗賬號密碼,校驗成功返回一個唯一Token作為用戶身份憑證;
  4. APP將Token緩存,同時登錄成功;
  5. 用戶使用APP瀏覽數據,APP每次向服務端請求數據時須同時帶上緩存的Token;
  6. 服務端收到請求,首先會校驗Token的合法性,校驗成功正常返回數據,校驗失敗直接返回錯誤;

Token驗證機制解決了什么問題?

設想一個場景,我們檢測到API接口正在被惡意調用,因為所有的接口都必須帶Token才能調用,根據Token我們就能快速反查到對應的用戶,所以Token驗證機制可以幫助我們快速確定調用者的身份。

發現惡意調用,我們通過Token確定調用者的身份后可以采取Token失效、封禁帳號等措施來阻止惡意調用繼續。

Token驗證機制能防止抓包嗎?

Token驗證機制並不能防止APP被抓包,因為Token同樣存在泄露的風險,惡意調用者只需要帶上Token再請求我們的API接口同樣還是能獲取到數據。

因為APP與服務端都是明文通信,一抓包就能看到請求參數以及返回數據,所以為了防止被抓包我們必須要對數據進行加密處理。

防抓包——數據加密

數據加密的過程,就是對原來明文傳輸的數據按某種加密算法進行加密處理,使其成為不可讀無意義的密文。

加密算法大體上可分為對稱加密、非對稱加密和散列算法等幾種方式,后面我們的方案都會涉及到。

對稱加密

對稱加密是一種可逆的加密算法,其中“對稱”的意思是加密過程和解密過程使用的是同一個密鑰。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM