回覆列表
  • 1 # 網路圈

    我們知道,現在主流專案較多都是採用MVC模式來開發的,在沒有MVC之前開發B/S類專案那程式碼耦合性很高、程式碼維護成本也很大,比如像老掉牙的ASP程式碼。而MVC推出後,我們將前端程式碼透過模板引擎與後端進行整合,其實這個也談不上完全的前後端分離開發。

    隨著Vue框架的興起,使得前後端完全分離式開發成為了可能,前端與後端的資料互動都透過API來進行。雖說前後端分離開發有很多優點,比如提升了開發效率、模組維護簡單等,但也帶來了一些問題,比如說呼叫API時如何確保資料安全性?

    要知道,前端呼叫API,這個動作是透明的,一般開發者透過抓包工具就知道你請求了哪些API、傳了什麼引數、返回結果是怎樣的。在這種情況下,API的安全性就尤為重要了,如要安全性沒做到位,那資料安全性也得不到保障。

    在具體專案中我們會採取一些手段來儘可能保證API安全,比如說常見手段有:

    1、啟用HTTPS

    API統一走HTTPS協議,因為HTTPS協議下資料的通訊是加密的(HTTPS協議在HTTP基礎上加了一個SSL層),可以防止第三方惡意篡改資料和中間人攻擊。

    2、API啟用簽名鑑權

    API的簽名鑑權機制可以保障API由呼叫方發起後不被篡改,比如sign被篡改後伺服器驗證此sign是非法的。

    另外要控制API的請求有效期,防止API地址被其它人重複利用請求。

    3、金鑰存於伺服器端

    如果資料加解密需要金鑰(比如說:客戶端將請求引數加密、伺服器端將響應資料加密),那金鑰應該存放在伺服器端,由客戶端動態獲取金鑰來加解密資料。

    4、請求引數合法性校驗

    “永遠不要相信使用者的任何輸入”,對於客戶端傳來的引數,伺服器端一定要進行合法性校驗,防止提交惡意不合法的資料。

  • 中秋節和大豐收的關聯?
  • 閆旭的愛情這懷酒誰喝都得醉的歌詞?