天天看點

移動端開發同後端互動安全機制記錄前言:需求:具體流程如下:

前言:

這兩年移動端開發的熱度明顯不如前幾年,而且混合式開發架構諸如appcan的興起在一定程度上降低了移動端開發的門檻,而最近更加流行的React開發更是把移動端原生開發的熱度拉低很多。基于React Native建構的移動APP無論是在體驗還是在速度上都可以同原生APP抗衡。同時網際網路巨頭提供的移動開發平台以及流量入口的便捷性,也讓更多人或者企業放棄開發原生APP,畢竟自己開發同時要開發安卓端又要考慮蘋果端,對時間成功以及人力成本都是很大的考驗。而諸如微信公衆号、微信企業号開發、釘釘開發、支付寶應用開發也越來越流行。

現在的web開發都講究前後端分類的方式,像前幾年用jsp/asp做開發後端進行頁面路由,通過session管理使用者登入狀态的方式,現在已經不再是主流。前端越來越重,處理的邏輯、互動越來越複雜。後端相對卻越來越簡單和複雜,說簡單是業務處理簡單,大多數情況下都是做資料的提取并傳回到前端即可,說複雜是因為大資料、叢集、微服務的興起,相比以前簡單的單應用來說,後端生态架構越來越往叢集上轉,同時資料的重要性愈發明顯。去年做過一個網元分析的項目,後端的核心人員全是資料處理和模組化人員,通過對底層信令檔案資料的加工、抽取、清洗,一層一層沉澱到上層表,然後web開發僅僅是查詢資料庫,并送出資料到前端即可。前端根據資料放到各種圖形化架構、地圖UI元件上去展示。整體來看,早幾年開發中重點負責業務邏輯處理的java開發反倒成了最輕松地一環,因為業務邏輯由專門的資料人員通過腳本、定時任務、存儲過程去處理,而頁面路由,頁面資料模型則全部由前端自己處理了。

說到頁面路由,最大的感觸還是前端技術的日新月異。前幾年前端的Jquery可謂是一家獨大,幾乎很少有聽說有所謂的前端架構。但是nodejs出來之後,子產品化開發、面向對象方式的js開發、vue/angleJs/react這些前端架構變得越來越流行,單頁應用、前端路由這些概念對于前端的開發以及使用者體驗可謂是颠覆性的。

廢話扯了很多,回到主題上來,今天主要記錄一下之前做的一個項目中使用到安全校驗規則。

需求:

甲方的業務中,有一個功能是在APP上提供兩個按鈕,點選按鈕後,可以對全省的使用者進行批量操作。影響範圍之廣,操作失敗後果嚴重之大顯而易見。客戶說,這個功能萬一被被人惡意使用,後果非常嚴重。是以要求絕對安全性。

除了本身的權限校驗機制外,互動安全也必須全面。

當時提出幾個方案:

1.使用https請求,請求加密

2.網絡限制,即隻有在特定的網絡裡才能請求這個業務對應的接口

3.多會話式加密請求方式

其中,第一種方案被否定了,因為客戶不提供域名,也不提供證書。第二種方式也被否定了,客戶說用APP就是要求快捷,你不能要求我隻能在公司才可以操作。

最後選擇第三種。所謂多會話式加密請求,其實是借鑒的SIP協定在進行呼叫及注冊時候的規則,SIP協定在發送INVITE請求時,第一次會收到407鑒權請求,根據服務回的相關資訊,按照統加密規則進行加密,然後再次INVITE,把相關鑒權資訊帶上,鑒權通過了才會發送呼叫。根據這種原理,我們的多倫會話請求的基本思路是,第一次請求帶上需要操作的相關資訊,收到服務回的相關資訊,根據相同規則,生成加密串,再重複送出,後端校驗,然後進行後續操作。

那麼,這其中的重點就在雙方認證的規則。

具體流程如下:

移動端開發同後端互動安全機制記錄前言:需求:具體流程如下: