簡述介面資料安全的主要實作方式
一:資料校驗
常用演算法:MD5,SHA1
流程:
1:前端生成資料后按照約定方式生成一個sign 校驗欄位(一般通過MD5或者SHA1 方式),一并提交給后端;
2:后端獲得引數后通過同樣的方式生成sign 然后跟介面攜帶的sign對比是否一致,以此判斷資料是否被修改;
eg:下面介面檔案中的sign
介面引數有:
1 order_id:訂單號,唯一,長度小于30
2 money:金額,分
3:type:支付型別 alipay(個碼),alipay(支付寶),wechat(微信) 多選一
4:appid:用戶的appid
5:c_url:回呼url 需要urlencode(不填默認是商戶后臺填寫的)
6:time:時間秒數
7:sign:驗證,規則(sign=md5(order_id+money+type+time+appid+key),所有都轉換為字串)
回傳資料格式:
{
"code": 1,
"msg": "succ",
"data": {
"order_id": "1545054693",
"type": "alipay",
"url": "alipays:\/\/platformapi\/startapp?appId=20000067&url=http://admin.php05.cn/pay/index/alipay?ms=1545054693=u_1&t=1545054610&tk=a53f9db256e66e4e",
"url_2": "http://admin.php05.cn/pay/index/alipay?ms=1545054693=u_1&t=1545054610&tk=a53f9db256e66e4e", //復制鏈接
"apply_time": "2018-12-17 21:50:10"
},
"sign": "f1b128b52b17856839597c7494628d6d",
"time": 1545054610
}
優點:對資料一致性做校驗,資料不易被隨便修改;
缺點:資料是明文傳輸,容易被猜測甚至偽造,一旦密鑰跟生成sign 方式泄露,資料是可能是修改后偽造的;
二:對稱加密方式
常用演算法:BASE64,AES;
流程:
1:前端通過一定演算法或者密鑰對資料進行加密;
2:后端通過相同逆向的方式對資料進行解密;
優點:資料是密文,一般人看不懂,不易泄露,加密解密方式簡單;
缺點:密鑰必須保存在前端,容易泄露,泄露后資料將被解密甚至偽造;
三:非對稱加密
常用演算法:RSA,DSA
流程:
1:后端生成公鑰,私鑰;
2:前端請求公鑰,并保存;
3:前端通過公鑰加密資料傳輸給后端;
4:后端通過私鑰解密資料后通過私鑰加密回傳資料給前端;
優點:密文傳輸,私鑰放后端不易泄露,前端提交資料是安全的,不易被解密或者修改;
缺點:后端回傳的資料可能會被截取解密(因為公鑰是公開的);
四:Https 實作方式 對稱加密+非對稱加密(會話密鑰模式)
常用演算法:AES+RSA
流程:
1:后端生成公鑰,私鑰保存
2:前端獲取公鑰,保存
3:前端會話前獲取亂數,并通過公鑰加密后作為會話密鑰對資料進行對稱加密后傳輸給后端
4:后端獲取到加密會話密鑰 通過私鑰解密出真正的會話密鑰,回傳資料時通過真正的會話密鑰對資料加密
5:前端獲得后端回傳的加密資料通過自己之前隨機生成的會話密鑰解密資料
優點:資料提交跟回傳都是密文,且密鑰是會話時隨機生成并非直接保存在前端不變,不易泄露,保證提交資料跟回傳資料都是加密,安全的
缺點:多次加密解密,相對比較耗cpu
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/283042.html
標籤:其他
上一篇:淺談bpduguard安全特性
