鑒權和認證服務器

目前登錄憑證的方式無非兩種:

一個是通過服務器端的session,一個是通過瀏覽器的cookie.

簡而言之:session和cookie

常規(guī)的是通過session

步驟:

1,用戶在瀏覽器登錄

2,后臺鑒權,若登錄成功,則把用戶信息寫入session,servlet自動生成JSESSIONID 返回瀏覽器;

3,瀏覽器把JSESSIONID 寫入cookie

說明:cookie是瀏覽器的存儲文件,存儲的只是JSESSIONID,而不是用戶信息;

JSESSIONID 只是一個鉤子,用戶信息其實存儲在服務器端.

比如我在瀏覽器登錄之后,重新打開一個標簽頁,輸入相同的地址,仍然是登錄狀態(tài),因為標簽頁共享cookie.

也就是說我只要獲取到JSESSIONID ,就可以獲取用戶隱私信息,比如除用戶名以外的其他信息(密碼,姓名,年齡等).也可以做一些敏感操作,比如修改密碼

瀏覽器發(fā)送請求時會帶上cookie

這樣服務器端才知道是否登錄過:

例如,我獲取到JSESSIONID 之后,使用HTTP模擬發(fā)送請求:

服務器端是如何判斷是否登錄

Java代碼

/***

*?判斷是否已登錄

*

*?@param?user2

*?@return

*/

publicstaticbooleanisLogined(GenericUser?user2,?String?loginFlag)?{

if(ValueWidget.isNullOrEmpty(user2)?||?ValueWidget.isNullOrEmpty(user2.getUsername())

||?(!Constant2.FLAG_LOGIN_SUCCESS.equalsIgnoreCase(loginFlag)))?{

returnfalse;

}else{

returntrue;

}

}

/***

*?判斷是否已登錄

*

*?@param?session

*?@return

*/

publicstaticbooleanisLogined(HttpSession?session)?{

String?loginFlag?=?(String)?session

.getAttribute(Constant2.SESSION_KEY_LOGINED_FLAG);

GenericUser?user2?=?(GenericUser)?session.getAttribute(Constant2.SESSION_KEY_LOGINED_USER);

returnisLogined(user2,?loginFlag);

}

如果通過cookie呢?

詳細流程,邏輯

(1)登錄前,瀏覽器先向認證服務器請求一個OTP,認證服務器返回OTP,同時返回一個cookie給瀏覽器;

(2)認證服務器把OTP 和CCC(cookie) 掛鉤;

(3)登錄時連同帶上OTP

(4)若登錄成功,則認證服務器返回登錄憑證(access token)給應用服務器;

(5)認證服務器把CCC 和登錄憑證掛鉤;

(6)通過CCC 可以判斷用戶是否有權限.

所以,

(a)可以通過CCC 獲取登錄憑證

(b)也可以通過OTP 獲取登錄憑證

根本原因:服務器把OTP 和CCC(cookie) 掛鉤

那么CCC記在什么地方?

瀏覽器

參考:http://blog.csdn.net/hw1287789687/article/details/48373209

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • 一、概念(載錄于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434閱讀 8,453評論 6 152
  • 轉自 :http://blog.csdn.net/taoff/articles/1921009.aspx 一、術語...
    stone_yao閱讀 6,266評論 0 31
  • 前言:最近發(fā)現(xiàn)自己在網(wǎng)絡相關這一塊基礎很是欠缺,所以準備花時間了解一下,本文主要是講http協(xié)議的一些基礎,和一些...
    justCode_閱讀 2,111評論 0 23
  • 注:本文轉載自前端大全 背景 在HTTP協(xié)議的定義中,采用了一種機制來記錄客戶端和服務器端交互的信息,這種機制被稱...
    楠小忎閱讀 689評論 0 0
  • 唐恩是個16歲的可愛少年,可惜由于家境貧寒而面臨輟學風險。一天,母親收到了舅公馬里奧的一封信,信中說,自己年邁,行...
    晴空月閱讀 1,087評論 3 1