中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

如何做開放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

调兵山市| 双流县| 吴堡县| 邵东县| 潢川县| 衡阳县| 大庆市| 大安市| 闵行区| 长宁县| 嘉兴市| 大英县| 泗阳县| 耒阳市| 隆子县| 高阳县| 新巴尔虎右旗| 五寨县| 吉隆县| 米林县| 达拉特旗| 兴山县| 剑河县| 临安市| 永春县| 嫩江县| 海淀区| 栾城县| 曲松县| 惠东县| 宁安市| 页游| 左贡县| 万盛区| 南华县| 高台县| 当阳市| 兖州市| 南京市| 图们市| 福泉市|