如何防止http請求數據被篡改


方式一:設置客戶端IP黑/白名單

1.1客戶端所有請求,請求到代理服務器(nginx),代理服務器維護黑/白名單的ip,決定是否轉發請求;

1.2項目創建一個filter,攔截所有請求,在filter的方法中,通過request信息匹配ip黑/白名單,和url的攔截規則,決定是否合法;

有點:簡單粗暴;

確定:需要客戶端的IP固定;

應用場景:為系統的后台管理服務,客服需要人工審批和通過涉及到錢財的業務;

方式二、請求參數Sign簽名

2.1前端請求發起http請求,對參數排序,然后使用參數與私鑰拼接,在進行md5加密等方式,生成一個簽名出來,一起發給服務端,服務端這邊獲取到參數,簽名,再使用自己的私鑰進行同樣方式的加密生成簽名,比對簽名是否一致。一致則認為合法,不一致則不合法。擔水無法防止重復請求攻擊;

2.2針對上面方法升級,可以緩存每次請求的MD5值,或者每個請求添加uuid+隨機數這樣一個代表請求序號的標識。然后請求到服務端時,服務端想辦法緩存起來起來這個標識,每次請求過來時,判斷是否已經請求過。

2.3在請求的參數中和簽名結果里,假如時間戳這個參數,業務服務器一方面比較簽名結果,一方面根據時間戳,來認證請求的合法性,比如允許請求的時間戳與服務器當前時間,存在20秒的誤差等自定義規則。超過20秒的合法請求,服務器也不處理,防止惡意的重復請求。

方式三、請求方式換成Https。

http請求過程:

建立TCP連接——>客戶端向服務器發送請求命令——>服務器應答——>關閉TCP連接——>客戶端接受到服務器響應的數據

 

 

ssl(secure sockets Layer 安全套接字協議)


免責聲明!

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



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