實現前後端分離 java介面的安全性問題

2021-08-28 10:01:23 字數 921 閱讀 5238

在前後端分離的開發中,後台提供的介面如何能保證訪問許可權安全?主要是身份驗證、資料加密、訪問控制(訪問頻率、訪問訪問次序,每個ip次數)

一、.簽名     根據使用者名稱或者使用者id,結合使用者的ip或者裝置號,生成乙個token。在請求後台,後台獲取http的head中的token,校驗是否合法(和資料庫或者redis中記錄的是否一致,在登入或者初始化的時候,存入資料庫/redis) 在使用base64方式的編碼後,token字串還是有20多位,有的時候還是嫌它長了。由於guid本身就有128bit,在要求有良好的可讀性的前提下,很難進一步改進了。那我們如何產生更短的字串呢?還有一種方式就是較少token的長度,不用guid,而採用一定長度的隨機數,例如64bit,再用base64編碼表示:     var rnd = new random();     var tokendata = userip+userid;     rnd.nextbytes(tokendata);     var token = convert.tobase64string(tokendata).trimend('='); 由於這裡只用了64bit,此時得到的字串為onh0h95n7nw的形式,長度要短一半。這樣就方便攜帶多了。但是這種方式是沒有唯一性保證的。不過用來作為身份認證的方式還是可以的(如網盤的提取碼)。

二、.加密    客戶端和伺服器都儲存乙個秘鑰,每次傳輸都加密,服務端根據秘鑰解密。    

客戶端:     1、設定乙個key(和伺服器端相同)     2、根據上述key對請求進行某種加密(加密必須是可逆的,以便伺服器端解密)     3、傳送請求給伺服器

伺服器端:     1、設定乙個key     2、根據上述的key對請求進行解密(校驗成功就是「信任」的客戶端發來的資料,否則拒絕響應)     3、處理業務邏輯並產生結果     4、將結果反饋給客戶端

三、.第三方支援   比如spring security-oauth  

nginx實現前後端分離

參考 路徑 nginx conf nginx.conf2.1 設定前端 位置location 2.2 配置後台請求攔截 後台跳轉 攔截所有前端 以 api 開始的請求 到 後端服務 http localhost 8080 backend project name api location api2....

前後端分離,介面引數傳輸安全

介面安全問題 請求身份是否合法?請求引數是否被篡改?請求是否唯一?accesskey secretkey 開放平台 請求身份 為開發者分配accesskey 開發者標識,確保唯一 和secretkey 用於介面加密,確保不易被窮舉,生成演算法不易被猜測 防止篡改 引數簽名 按照請求引數名的字母公升序...

express mysql實現前後端分離增刪改查

繼上篇文章 index.js const express require express cors模組,處理web端跨域問題 const cors require cors body parser 解析表單 const bodyparser require body parser 使用mysql中介...