關於請求和響應數據防篡改的解決方案(SM3)


 

 

一、     請求防篡改

【前端】

1、 前端統一攔截所有ajax請求(如:ajaxhook.js、axios.js)

2、 分別對post請求和get請求的正文用SM3進行計算哈希值(requestSM3)

3、 將計算得到的哈希值(requestSM3)放在請求頭(參數名為:clientSM3)。

【后端】

1、 網關處攔截所有的請求

2、 判斷請求頭是否有clientSM3

3、 計算請求正文的哈希值(serverSM3)

4、 判斷clientSM3與serverSM3值是否相等(判斷請求正文是否被篡改)

二、     響應防篡改

【后端】

1、 網關攔截所有請求

2、 對所有的response響應的正文用SM3計算哈希值(responseSM3)

3、 將計算得到的哈希值(responseSM3)放在響應頭(參數名:serverSM3)

【前端】

1、 攔截所有返回數據

2、 判斷響應頭是否有serverSM3

3、 計算響應正文的哈希值(clientSM3)

4、 判斷clientSM3與serverSM3值是否相等(判斷響應正文是否被篡改)

三、     備注

注意:在計算SM3時需要先對數據toString或者toJson

加鹽:在計算SM3時需要加鹽xxxxx,請求和響應鹽值不的一樣

 

請求數據被篡改處理機制:后端網關直接返回:{status:-100,msg:數據包被串改}

響應數據被篡改處理機制:前台網關直接提示:數據響應異常,網絡存在安全隱患


免責聲明!

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



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