91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何做開放API的簽名認證

發布時間:2021-12-30 10:53:06 來源:億速云 閱讀:144 作者:小新 欄目:大數據

小編給大家分享一下如何做開放API的簽名認證,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

項目中有一套restful接口需要暴露在公網環境中,需要確保調用安全。包括以下三個方面

1、請求來源(身份)要合法

2、請求參數不能被篡改

3、請求要唯一(不可復制)

為了保證數據在通信時的安全性,可以采用參數簽名的方式來進行相關驗證。

一、不驗證的方式

偽代碼如下圖

如何做開放API的簽名認證

這種方式實現簡單,但是問題非常明顯,誰都可以得到想要的數據。

二、MD5參數簽名

參看《MD5防止數據被篡改的做法》

我們對api查詢產品接口進行優化

1.給app分配對應的key、secret

2.sign簽名,調用API 時需要對請求參數進行簽名驗證,簽名方式如下

(1)按照請求參數名稱將所有請求參數按照字母先后順序排序得到,keyvaluekeyvalue...keyvalue  字符串如:將arong=1,mrong=2,crong=3 排序為,arong=1, crong=3,mrong=2  然后將參數名和參數值進行拼接得到參數字符串,arong1crong3mrong2

(2)將secret加在參數字符串的頭部后進行MD5加密 ,加密后的字符串需大寫。即得到簽名sign

新api接口代碼如下

如何做開放API的簽名認證

這種方法請求多了key和sign參數,請求的時候就需要合法的key和正確簽名sign才可以獲取群組數據。這樣就解決了身份驗證和防止參數篡改問題。如果請求參數被人拿走,他永遠也拿不到secret,因為secret是不傳遞的(客戶端中病毒除外)。沒有secrret無法偽造合法的請求。

但是這樣還不夠,如果獲取你完整的鏈接,一直使用你的key和sign和一樣的參數同樣可以得到數據

三、請求唯一性保證

為了防止別人重復使用請求參數問題,我們需要保證請求的唯一性,就是對應請求只能使用一次,這樣就算別人拿走了請求的完整鏈接也是無效的。

唯一性的實現:在如上的請求參數中,我們加入時間戳timestamp(yyyyMMddHHmmss),同樣,時間戳作為請求參數之一,也加入sign算法中進行加密

如何做開放API的簽名認證

通過timestamp時間戳用來驗證請求是否過期。這樣就算被人拿走完整的請求鏈接也是無效的。除此之外,還可以增加瀏覽器指紋(后續單獨寫文章說明)等技術,對請求唯一性進行驗證。

sign簽名安全性分析

通過上面的例子,可以看出,安全的關鍵在于參與簽名的secret,整個過程中secret是不參與通信的,所以只要保證secret不泄露,請求就不會被偽造。

上述的sign簽名的方式能夠在一定程度上防止信息被篡改和偽造,保障通信的安全,這里使用的是MD5進行加密,在實際使用中可以根據需求采用其他簽名算法,比如:RSA,SHA等。

以上是“如何做開放API的簽名認證”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

api
AI

勐海县| 临漳县| 略阳县| 喀喇| 阳新县| 新乡市| 宿州市| 文化| 涡阳县| 印江| 泉州市| 新营市| 开化县| 五指山市| 长沙县| 金平| 多伦县| 崇信县| 塔河县| 广德县| 泰和县| 惠来县| 沂源县| 霍邱县| 巴马| 云南省| 织金县| 玉溪市| 金塔县| 衡东县| 木兰县| 临西县| 南宁市| 莲花县| 公主岭市| 略阳县| 淄博市| 英超| 交城县| 清河县| 方城县|