[工作筆記](méi)基于COOKIE的多系統(tǒng)登錄

公司:HJSD

職位:Java開(kāi)發(fā)工程師

項(xiàng)目代號(hào):G

簡(jiǎn)介

G項(xiàng)目是在HJSD接觸的第一個(gè)項(xiàng)目,是一個(gè)年長(zhǎng)且功能強(qiáng)大的業(yè)務(wù)項(xiàng)目,子系統(tǒng)10+個(gè),包含了數(shù)據(jù)采集、任務(wù)調(diào)度、報(bào)表展示、業(yè)務(wù)管理等一系列的功能。各個(gè)子系統(tǒng)公用一套用戶體系,用戶一次注冊(cè)/登錄即可實(shí)現(xiàn)系統(tǒng)間的相互切換

分析

一個(gè)項(xiàng)目多個(gè)子系統(tǒng),在項(xiàng)目進(jìn)行到后期是比較常見(jiàn)的情況。解決多系統(tǒng)之間授權(quán)的方式也有很多,比如我們常見(jiàn)的使用cas的方式。而在這個(gè)項(xiàng)目中,可能由于比較年長(zhǎng)的原因,它采用的是基于同域共享cookie的方式來(lái)進(jìn)行多個(gè)系統(tǒng)之間的授權(quán)

實(shí)現(xiàn)前提

使用同個(gè)域名下的子域名(可以細(xì)化到二級(jí)域名、三級(jí)域名)

獨(dú)立用戶中心

自定義嚴(yán)謹(jǐn)?shù)腸ookie共享策略(加密策略、過(guò)期策略、獲取策略)

基礎(chǔ)邏輯


上圖是一個(gè)簡(jiǎn)單的邏輯流程:

1、用戶首次請(qǐng)求的時(shí)候,各子系統(tǒng)進(jìn)行第一輪的校驗(yàn)

2、系統(tǒng)未能從*.a.com的域名下獲取相關(guān)用戶信息,進(jìn)行頁(yè)面跳轉(zhuǎn),將用戶引導(dǎo)到用戶中心的登錄頁(yè)面

3、用戶在登陸頁(yè)面輸入用戶名密碼進(jìn)行登錄請(qǐng)求

4、用戶中心校驗(yàn)用戶信息,成功后將用戶信息寫(xiě)入*.a.com這個(gè)域名的cookie下。此處需要對(duì)信息進(jìn)行加密

5、用戶中心引導(dǎo)跳轉(zhuǎn)返回原來(lái)請(qǐng)求的子系統(tǒng)

6、子系統(tǒng)再次校驗(yàn)通過(guò)后,顯示用戶所需要請(qǐng)求的頁(yè)面

思考

這種方式,其實(shí)依靠的是同域名cookie共享的方式,使得用戶登錄狀態(tài)可以給多個(gè)子系統(tǒng)獲取,早期許多系統(tǒng)采用的是這種方式,但這種方式卻存在著局限性,所以后期有了更好的解決方案。局限性如下:

1、同樣的方式,在多個(gè)域名的情況就會(huì)存在問(wèn)題了。

2、這種方式在不同語(yǔ)言中不能通用,因?yàn)椴煌Z(yǔ)言使用的cookie方案是不一樣的

3、cookie存在安全性的問(wèn)題,容易被cookie偽造實(shí)現(xiàn)系統(tǒng)登錄(實(shí)操過(guò)^_^)

雖然說(shuō)有局限,可是如果是用在內(nèi)部系統(tǒng),在設(shè)置白名單的情況下,這種方式不失為一種節(jié)省資源的多系統(tǒng)解決方案

如何解決cookie問(wèn)題?

雖然cookie的安全性問(wèn)題沒(méi)法根治,但如果必要的措施可以讓安全問(wèn)題沒(méi)那么高

1、對(duì)cookie進(jìn)行加密解密

2、限制多系統(tǒng)之間授權(quán)的方式,即A系統(tǒng)要登錄B系統(tǒng),需要通過(guò)一個(gè)特殊的頁(yè)面進(jìn)行授權(quán)跳轉(zhuǎn)才行,這個(gè)頁(yè)面在系統(tǒng)內(nèi)部,沒(méi)法通過(guò)外部訪問(wèn)

3、多個(gè)系統(tǒng)用多個(gè)加密授權(quán)的cookie,防止僅使用一個(gè)授權(quán)cookie

4、對(duì)用戶的最后訪問(wèn)路徑進(jìn)行監(jiān)控,因?yàn)樵L問(wèn)的路徑修改的頻率較高,進(jìn)行cookie竊取沒(méi)法竊取最新的(僅限參考)

最后,除了一些已經(jīng)穩(wěn)定運(yùn)行,迭代了多次的老項(xiàng)目,還是采用更安全的方式吧

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.感謝雨欣的信任,跟我說(shuō)自己的得心里話,和媽媽爭(zhēng)吵的過(guò)程。同理+引導(dǎo),希望對(duì)她有用 2.感恩明如的配合,有她在真...
    肖馨肖馨閱讀 164評(píng)論 1 2
  • 排骨教主 V:謝謝大家一直支持我。也很開(kāi)心,能跟最愛(ài)的你們走過(guò)這么快樂(lè)的幾年。曾經(jīng)說(shuō)過(guò)要一直陪伴著大家,看來(lái),我要...
    塵世若沫or梓盡言沐閱讀 510評(píng)論 0 2
  • 離開(kāi),無(wú)非是一種已經(jīng)走遠(yuǎn)。 新疆之行,進(jìn)入伊犁賽里木,顛簸中只在睡覺(jué),突一睜眼,窗外迷離的光線,散發(fā)著...
    潤(rùn)筆聲聲閱讀 616評(píng)論 0 1
  • 2017年11月7日 星期二 天氣晴 親子日記第22天 今天是期中考試,下午去接兒子,他見(jiàn)到我之后興高采烈的說(shuō):...
    維維_ad8a閱讀 160評(píng)論 0 1
  • 沒(méi)忍住,看了某某的照片! 和兩個(gè)女生一起,那個(gè)時(shí)間,我也在那個(gè)城市! 看著照片里熟悉的笑容,感覺(jué)心臟凝固了,然后沉...
    Abby_Z閱讀 76評(píng)論 0 0

友情鏈接更多精彩內(nèi)容