參考文章:
1、client指第三方應用
2、resource owner指使用者
3、authorization server是我們的授權伺服器
4、resource server是api伺服器
認證流程:
整個過程分為 a~f 六個步驟:
a:client向resource owner發出認證請求。
b:resource owner對client的請求給予授權,並給client頒發乙個授權令 牌authorization code。
c:client攜帶authorization code對authorization server發起授權請求。
d:authorization server對client的請求給予授權,並給client頒發乙個授權令牌access token。
e:client攜帶access token向resource server請求使用者資訊資源。
f:resource server驗證access token合法後將使用者資訊資源發回給client。
自己抓包的過程
使用者請求第三方**介面,說明 要以微博登陸方式進行登陸
第三方**允許以微博方式進行登陸,並且302跳轉到微博api伺服器 讓使用者進行授權去獲取微博的個人使用者資料,在請求的過程中會攜帶state引數,該引數的值是乙個隨機數,作用是防止csrf中間人攻擊
client_id用來識別哪個第三方**需要進行授權,redirect_uri表示驗證之後成功/失敗後返回的**,response_type表示要求返回授權碼,state驗證隨機數
當使用者進行驗證成功了之後,微博介面會返回乙個code作為授權碼返回給之前的redirect_uri指向的站點
在之後第三方**要獲取使用者的個人資料的時候,都會帶上這個授權碼code來進行請求
如果自己這樣看起來的話 好像code就是token嗎?是這樣理解的嗎?
oauth中可能存在的安全問題:
1、當沒有進行類似state進行驗證的時候,可能會出現csrf劫持漏洞,又或者可以嘗試去發現是否可以跨域資源共享尋找是否可以先得到引數的值,然後就去請求
2、可能會出現的redirect_uri劫持漏洞,同樣的是沒有對驗證的時候****redirect_uri的驗證,如果驗證了也可以嘗試fuzz逃逸,或者只是白名單尋找該父域下的子站點,前提需要類似乙個url跳轉漏洞!
oauth機制參考文章:
OAuth2 0認證授權
授權碼模式 authorization code 是功能最完整 流程最嚴密的授權模式。它的特點就是通過客戶端的後台伺服器,與 服務提供商 的認證伺服器進行互動。client id x client secret x response type 表示授權型別,必選項,此處的值固定為 code clie...
理解OAuth2 0認證
oauth協議為使用者資源的授權提供了乙個安全的 開放而又簡易的標準。與以往的授權方式不同之處是oauth的授權不會使第三方觸及到使用者的帳號資訊 如使用者名稱與密碼 即第三方無需使用使用者的使用者名稱與密碼就可以申請獲得該使用者資源的授權,因此oauth是安全的。oauth是open author...
OAuth2 0的認證流程
oauth2.0的認證流程 在oauth2.0的處理流程,主要分為以下四個步驟 1 得到授權碼code 2 獲取access token 3 通過access token,獲取openid 4 通過access token及openid呼叫api,獲取使用者授權資訊 上面是流程的大概四個步驟,在下面...