亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

REST身份驗證并公開API密鑰

REST身份驗證并公開API密鑰

www說 2019-11-22 15:00:41
我一直在閱讀REST,因此有很多關于REST的問題,以及許多其他網站和博客。盡管我從未見過這個特定問題的答案...由于某種原因,我無法將這個想法籠罩在心...如果我正在構建RESTful API,并且想要保護它的安全,那么我所看到的方法之一就是使用安全令牌。當我使用其他API時,會有一個令牌和一個共享的秘密……很有意義。我不明白的是,正在通過javascript(XHR / Ajax)發出對REST服務操作的請求,這是為了防止某人通過諸如FireBug(或瀏覽器中的“查看源代碼”)之類的簡單內容來嗅探到這一點,以及復制API密鑰,然后假冒使用密鑰和秘密的那個人?
查看完整描述

3 回答

?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

api secret沒有顯式傳遞,secret用于生成當前請求的標志,在服務器端,服務器按照相同的過程生成標志,如果兩個標志匹配,則請求成功通過身份驗證-因此僅簽名是通過請求傳遞的,而不是秘密。


查看完整回答
反對 回復 2019-11-22
?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

這個問題的答案是可以接受的,但為了澄清起見,共享秘密身份驗證的工作方式如下:

  1. 客戶端具有公共密鑰,可以與任何人共享,沒關系,因此您可以將其嵌入javascript。這用于標識服務器上的用戶。

  2. 服務器具有密鑰,此密鑰必須受到保護。因此,共享密鑰身份驗證要求您可以保護您的秘密密鑰。因此,無法直接連接到其他服務的公共javascript客戶端,因為您需要服務器中間人來保護機密。

  3. 服務器使用某種算法來簽署請求,該算法包括秘密密鑰(秘密密鑰有點像鹽),最好是時間戳,然后將請求發送到服務。時間戳是為了防止“重播”攻擊。請求的簽名僅在n秒左右有效。您可以通過獲取時間戳頭來檢查服務器上的內容,該頭應包含簽名中包含的時間戳值。如果該時間戳記過期,則請求失敗。

  4. 該服務獲取的請求不僅包含簽名,而且還包含以純文本簽名的所有字段。

  5. 然后,該服務使用共享密鑰以相同的方式對請求進行簽名,并比較簽名。


查看完整回答
反對 回復 2019-11-22
  • 3 回答
  • 0 關注
  • 607 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號