給第三方使用介面的 URL 簽名實現

2021-09-12 17:08:29 字數 935 閱讀 1261

在開放給第三方使用的api中,如果讓第三方攜帶明文的token請求服務,極有可能洩漏token。由於第三方身份驗證伺服器是依賴於token的,這樣會造成不良的後果。為了提高通訊的安全性,我們需要加密token,就是url簽名了。
生成url簽名的signature,假設第三方獲取到token後,token=「aff9u87kkk444hjg」,openid=8996,將要呼叫的api路徑是zithan.test/user/show,那麼url簽名如下:

signature=md5('zithan.test/user/show?openid=8996&token=aff9u87kkk444hjg')
組合api的路徑

zithan.test/user/show?openid=8996&signature=1aba61306711521e8b52ac2f46bb3ebf
但是現在還有乙個問題,就是重放攻擊,沒有過期時間,假設非法者截獲了這個api路徑,就能反覆呼叫這個路徑。 改進方法是增加時間戳,增加api路徑的時效性。

signature=md5('zithan.test/user/show?openid=8996&token=aff9u87kkk444hjg×tamp=1550732083')
zithan.test/user/show?openid=8996×tamp=1550732083&signature=cba2aa328577e6aab3e811517e1aa752
md5可以換成其他非對稱加密的方法

在獲取token那乙個步驟也有可能洩露token,那麼嚴謹就需要採取對稱加密,進行資料加密。

因為增加了時間戳,那麼就有可能導致第三方和伺服器的差異性,那麼就需要計算第三方的時間差,在驗證簽名或者生成簽名的時候考慮進去。

給第三方使用介面的 URL 簽名實現

在開放給第三方使用的api中,如果讓第三方攜帶明文的token請求服務,極有可能洩漏token。由於第三方身份驗證伺服器是依賴於token的,這樣會造成不良的後果。為了提高通訊的安全性,我們需要加密token,就是url簽名了。生成url簽名的signature,假設第三方獲取到token後,tok...

給第三方dll強簽名

假若我們要對第三方控制項或者是其他的沒有源 的dll檔案想做類似的處理,增加強名稱簽名,怎麼處理,是很多人都會面對的問題。步驟 1.首先採用反彙編工具ildasm生成中間語言。ildasm mytest.dll out mytest.il 生成的結果包括mytest.il檔案和mytest.res檔...

第三方介面的技術難題

涉及到很多第三方介面,那必然會出現一些技術難題。1.耦合性 1 如果第三方介面如果效能出現抖動,那必然會導致我們核心流程的效能變差。非同步解耦 2 如果第三方介面突然公升級了,比如說原來只需要5個入參,現在需要6個入參了,那我們本地系統的多個介面也需要跟著第三方介面的公升級而公升級,必須配合他的新介...