欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
REST API 的安全基礎

作者 | 魔王不造反

來(lái)源 | https://blog.biezhi.me/2019/01/rest-security-basics.html

10萬(wàn)開(kāi)發(fā)者都知道的部署方式,你居然不知道!??jì)群瑧屹p活動(dòng)

REST 是一種現代架構風(fēng)格,它定義了一種設計 Web 服務(wù)的新方法。和之前的 HTTP 以及 SOA 不同,它不是一個(gè)協(xié)議(即:一套嚴格的規則),而是一些關(guān)于 Web 服務(wù)應該如何相互通信的一些建議和最佳實(shí)踐。按照 REST 最佳實(shí)踐開(kāi)發(fā)的服務(wù)被稱(chēng)為 “RESTful Web 服務(wù)”。

安全性是 RESTful 服務(wù)的基石。啟用它的方法之一是盡可能內置用戶(hù)身份驗證和授權機制。

在 RESTful 服務(wù)中實(shí)現用戶(hù)身份驗證和授權的方法有很多。我們今天要講的主要方法(或標準)有:

  • Basic 認證

  • OAuth 2.0

  • OAuth 2.0 JWT

為了讓我們的討論更加具體,假設我們的后端程序有微服務(wù),并且每個(gè)用戶(hù)請求時(shí),必須調用后端的幾個(gè)服務(wù)來(lái)返回請求的數據。所以,我們將不僅從安全性問(wèn)題方面,而且在它們產(chǎn)生的額外流量和服務(wù)器負載的背景下檢查每個(gè)標準。下面開(kāi)始吧…

Basic 認證

最古老也是最簡(jiǎn)單的標準。

看起來(lái)像: 用戶(hù)名 密碼 Base64(對用戶(hù)名和密碼做哈希的基礎算法)。

工作原理:加入有人嘗試登錄用戶(hù)的 Fackbook 賬戶(hù),去訪(fǎng)問(wèn)他的消息、歷史記錄、群組信息,這些都是獨立的服務(wù)。當用戶(hù)輸入用戶(hù)名和密碼后,系統會(huì )允許登錄。但是,默認情況下,系統不知道用戶(hù)的角色和權限是什么,他們可以訪(fǎng)問(wèn)哪些服務(wù)等等。

所以每次用戶(hù)嘗試訪(fǎng)問(wèn)任何一個(gè)服務(wù)的時(shí)候,系統都應該再次驗證是否允許執行這個(gè)操作,這意味著(zhù)需要對身份驗證進(jìn)行額外的調用。就我們的示例中有四個(gè)服務(wù)而言,在這種情況下,每個(gè)用戶(hù)將有四個(gè)額外的調用。

現在假設每秒有 3k 個(gè)請求,在 Facebook 的系統中每秒 300k 請求更現實(shí)。將這請求乘以四,結果是每秒要向服務(wù)器發(fā)出 12k 次調用。

總結:可伸縮性差,大量的額外流量(額外調用)沒(méi)有帶來(lái)業(yè)務(wù)價(jià)值,服務(wù)器的負載很大。

OAuth 2.0

看起來(lái)像:用戶(hù)名 密碼 訪(fǎng)問(wèn)令牌 過(guò)期令牌

工作原理:OAuth 2.0 標準的核心思想是,用戶(hù)使用用戶(hù)名和密碼登錄系統后,客戶(hù)端(用戶(hù)訪(fǎng)問(wèn)系統的設備)會(huì )收到一對令牌,這是一個(gè)訪(fǎng)問(wèn)權限令牌和刷新令牌。

訪(fǎng)問(wèn)令牌用于訪(fǎng)問(wèn)系統中的所有服務(wù)。到期后,系統使用刷新令牌生成一對新的令牌。所以,如果用戶(hù)每天都進(jìn)入系統,令牌也會(huì )每天更新,不需要每次都用用戶(hù)名和密碼登錄系統。刷新令牌也有它的過(guò)期時(shí)間(雖然它比訪(fǎng)問(wèn)令牌長(cháng)得多),如果一個(gè)用戶(hù)一年沒(méi)有進(jìn)入系統,那么很可能會(huì )被要求再次輸入用戶(hù)名和密碼。

OAuth 2.0 標準取代了基本的身份驗證方法,它具有一定的優(yōu)勢,例如用戶(hù)每次想要進(jìn)入系統時(shí)不用輸入用戶(hù)名和密碼。但是,系統仍然需要調用身份驗證服務(wù)器,就像使用基本身份驗證方法時(shí)一樣,以檢查擁有該令牌的用戶(hù)有權限做什么。

假設有效期是一天。這意味著(zhù)登錄服務(wù)器上的負載要少得多,因為用戶(hù)每天只需要輸入一次憑證,而不是每次都要進(jìn)入系統。但是,系統仍需要驗證每個(gè)令牌并檢查用戶(hù)角色的存儲狀態(tài)。所以我們最終還要調用身份驗證服務(wù)器。

總結:和 Basic 驗證有相同的問(wèn)題 - 可伸縮性差,身份驗證服務(wù)器負載較高。

OAuth2 JSON Web 令牌

看起來(lái)像:用戶(hù)名 密碼 JSON數據 Base64 私鑰 到期日期

工作原理:當用戶(hù)第一次使用用戶(hù)名和密碼登錄系統時(shí),系統不僅會(huì )返回一個(gè)訪(fǎng)問(wèn)令牌(只是一個(gè)字符串),而是一個(gè)包含所有用戶(hù)信息的 JSON 對象,比如角色和權限,使用 Base64 進(jìn)行編碼并使用私鑰簽名。下圖是它在沒(méi)有編碼的情況下的樣子:

看起來(lái)很可怕,但這確實(shí)有效!主要區別在于我們可以在令牌中存儲狀態(tài),而服務(wù)保持無(wú)狀態(tài)。這意味著(zhù)用戶(hù)自己擁有自己的信息,不需要額外的調用來(lái)檢查它,因為所有的內容都在令牌里。這對于減少服務(wù)器負載方面是一個(gè)很大的優(yōu)勢。這個(gè)標準在世界范圍內得到廣泛應用。

總結:良好的可伸縮性,可以和微服務(wù)一起工作。

新玩意:亞馬遜簽名方式

一種全新的,奇特的方法,稱(chēng)為 HTTP 簽名,亞馬遜是目前使用它的大廠(chǎng)之一。

它的思路是,當你創(chuàng )建亞馬遜帳戶(hù)的時(shí)候,會(huì )生成一個(gè)永久的、非常安全的訪(fǎng)問(wèn)令牌,你要非常小心地存儲起來(lái)并且不要給任何人顯示。當你要從 Amazon 請求某些資源時(shí),你可以獲取到所有相關(guān)的 http 頭信息,使用這個(gè)私鑰對其進(jìn)行簽名,然后將簽名的字符串作為 header 發(fā)送。

在服務(wù)器端,亞馬遜也有你的訪(fǎng)問(wèn)密鑰。它們接下來(lái)做什么?只需要使用你的 http 頭信息和這個(gè)密鑰進(jìn)行簽名。然后將簽名字符串和你作為簽名的字符串進(jìn)行比較;如果相同那么就知道你是誰(shuí)。

最大的好處是你只需要發(fā)送一次用戶(hù)名和密碼 - 就可以獲得令牌。至于使用私鑰簽名的 header 信息,基本上沒(méi)有機會(huì )對它們進(jìn)行編碼。就算有人截獲了信息——誰(shuí)在乎呢 ;)

英文原文:https://yellow.systems/blog/rest-security-basics

本文通過(guò)OpenWrite的Markdown轉換工具發(fā)布
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
shiro oauth2.0 鑒權
OAuth 2.0 協(xié)議學(xué)習筆記
微服務(wù)架構下的安全認證與鑒權
OAuth2 RFC6749中文翻譯
API身份驗證和授權介紹
.NET開(kāi)源OpenID和OAuth解決方案Thinktecture IdentityServer
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久