Http請求防篡改

簽名參數Sign生成方法:

1.將所有的參數通過字母升序排序

2.將排序後的參數按(keyvalue)的方式拼成一個字符串,把請求參數中的&轉換成''.

3.把和服務端約定好的驗證密鑰key放到拼接好字符串的前面,然後MD5 32位加密並轉成大寫

例如:

假如請求的數據是

http://www.xxx.com/controller/interface?sign=sign_value&p=v1&c1=n3&method=queryXXX&f3=vn(實際情況最好是通過post方式發送),其中sign參數對應的sign_value就是簽名的值。
(1)拼接字符串並升序排序,c1=p3&f3=vn&method=queryXXX&p=v1
(2)參數名和值的拼接:c1p3f3vnmethodqueryXXXpv1
(3)把和服務端約定好的驗證密鑰key,比如和服務端約定的驗證密鑰key是key9a8bc7。就得到新的字符串key9a8bc7c1p3f3vnmethodqueryXXXpv1
(4)將得到新的字符串key9a8bc7c1p3f3vnmethodqueryXXXpv1進行md5加密計算,然後轉爲大寫,得到的這個值就是sign_value簽名值。
注意,計算md5之前請確保接口與接入方的字符串編碼一致,如統一使用utf-8編碼或者GBK編碼,如果編碼方式不一致則計算出來的簽名會校驗失敗。

當然了還有通過代理服務攔截的,客戶端在請求時先訪問代理服務器驗證通過後在請求主機訪問。

一些其它方式防篡改方法如下:

(1)設置客戶端IP黑白名單

(2)請求參數Sign簽名

(3)請求方式換成Https

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章