日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

Cookie的secure屬性引起循環(huán)登錄問題分析及解決方案

來源: 責(zé)編: 時間:2024-09-10 09:50:28 172觀看
導(dǎo)讀一、單點(diǎn)登錄簡單介紹1.1 基本概念一個公司內(nèi)部可能存在多個系統(tǒng),如果每一個人在使用不同系統(tǒng)的時候都需要重新登錄,那么會做大量系統(tǒng)登錄切換、耗費(fèi)比較多的精力去管理賬號和密碼,那么有沒有辦法在一個公司內(nèi)部的所有系

o2j28資訊網(wǎng)——每日最新資訊28at.com

一、單點(diǎn)登錄簡單介紹

1.1 基本概念

一個公司內(nèi)部可能存在多個系統(tǒng),如果每一個人在使用不同系統(tǒng)的時候都需要重新登錄,那么會做大量系統(tǒng)登錄切換、耗費(fèi)比較多的精力去管理賬號和密碼,那么有沒有辦法在一個公司內(nèi)部的所有系統(tǒng)只需要一次登錄驗(yàn)證,后續(xù)使用其他系統(tǒng)的時候不用重復(fù)登錄就可以直接使用呢,這就是單點(diǎn)登錄要解決的問題。o2j28資訊網(wǎng)——每日最新資訊28at.com

單點(diǎn)登錄英文全稱 Single Sign On(SSO),允許用戶一次登錄即可訪問多個應(yīng)用程序或系統(tǒng),無需為每個應(yīng)用程序或系統(tǒng)分別輸入認(rèn)證憑據(jù),便可在其他所有系統(tǒng)中得到授權(quán),無需再次登錄。o2j28資訊網(wǎng)——每日最新資訊28at.com

圖片o2j28資訊網(wǎng)——每日最新資訊28at.com


o2j28資訊網(wǎng)——每日最新資訊28at.com

1.2 基本實(shí)現(xiàn)原理

圖片o2j28資訊網(wǎng)——每日最新資訊28at.com


o2j28資訊網(wǎng)——每日最新資訊28at.com

  • 用戶登錄:用戶在任何一個應(yīng)用程序或系統(tǒng)中進(jìn)行身份驗(yàn)證,并提供他們的憑據(jù)。
  • 認(rèn)證系統(tǒng)驗(yàn)證:該憑據(jù)被發(fā)送到認(rèn)證系統(tǒng)進(jìn)行驗(yàn)證。如果憑據(jù)有效,則認(rèn)證系統(tǒng)會為用戶生成數(shù)字簽名的令牌(如 Token 或 Ticket)。
  • 令牌分發(fā):認(rèn)證系統(tǒng)將令牌返回給應(yīng)用程序或子系統(tǒng)。
  • 應(yīng)用程序或系統(tǒng)授權(quán):應(yīng)用程序或系統(tǒng)使用令牌驗(yàn)證用戶的身份,并授權(quán)其訪問相應(yīng)資源或服務(wù)。
  • 跨域系統(tǒng)訪問:用戶可以通過同一令牌訪問多個跨域應(yīng)用程序或系統(tǒng),而無需重復(fù)進(jìn)行身份驗(yàn)證。    

二、循環(huán)登錄問題

在某一天我們登錄一個內(nèi)部系統(tǒng)時,突然出現(xiàn)了循環(huán)登錄問題,前端頁面不斷刷新,提示“重定向次數(shù)過多問題”。o2j28資訊網(wǎng)——每日最新資訊28at.com

圖片o2j28資訊網(wǎng)——每日最新資訊28at.com

打開前端調(diào)試功能, 我們會發(fā)現(xiàn)確實(shí)存在大量重定向請求的問題:o2j28資訊網(wǎng)——每日最新資訊28at.com

圖片o2j28資訊網(wǎng)——每日最新資訊28at.com

那么平時登錄沒問題的系統(tǒng)為什么突然間就循環(huán)登錄呢?并在頁面上提示的解決方法“嘗試刪除您的 Cookie 操作”,按照這個操作以后,確實(shí)系統(tǒng)又可以跳轉(zhuǎn)到登錄頁面正常進(jìn)行登錄了,這又是什么原因?下面我們將逐一分析。o2j28資訊網(wǎng)——每日最新資訊28at.com

三、從一次正常登錄流程說起

圖片o2j28資訊網(wǎng)——每日最新資訊28at.com

上述是一個通用的系統(tǒng)權(quán)限管控和單點(diǎn)系統(tǒng)認(rèn)證的標(biāo)準(zhǔn)流程:o2j28資訊網(wǎng)——每日最新資訊28at.com

  • 用戶第一次訪問時,在瀏覽器輸入 https://aaa.x.y 回車
  • 權(quán)限系統(tǒng)進(jìn)行攔截,判斷用戶是否登錄,這里主要是通過是否有登錄信息判斷,如果沒有登錄,權(quán)限系統(tǒng)會幫我們跳轉(zhuǎn)到單點(diǎn)登錄系統(tǒng),彈出用戶登錄頁。
  • 用戶填寫用戶名、密碼,單點(diǎn)登錄系統(tǒng)進(jìn)行認(rèn)證后,將登錄狀態(tài)寫入 SSO 的 session。
  • SSO 系統(tǒng)登錄完成后會給我們的系統(tǒng)生成一個 Token ,然后跳轉(zhuǎn)到我們的系統(tǒng),同時將 Token 作為參數(shù)傳遞給我們的系統(tǒng)。
  • 我們系統(tǒng)拿到 Token 后,從后臺向 SSO 發(fā)送請求,驗(yàn)證 Token 是否有效。
  • 驗(yàn)證通過后,我們系統(tǒng)將記錄頂級域下的 Cookie 信息。
Connection: keep-aliveContent-Length: 0Date: Wed, 25 Oct 2023 08:29:43 GMTLocation: http://aaa.x.y/console/login/auth?redirectUrl=http://aaa.x.y/optrace: xx.xx.xx.xx:80/302 <- -Server: nginxSet-Cookie: token=fakdfajdfdjfdjkfaldfjk'afafjasfasfa; Max-Age=86400; Expires=Thu, 26-Oct-2023 08:29:43 GMT; Domain=x.y; Path=/; HttpOnly

一個公司內(nèi)部一般情況下只有一個域名,通過二級域名區(qū)分不同的系統(tǒng)。比如我們有個域名叫做:x.y ,同時有兩個業(yè)務(wù)系統(tǒng)分別為:app1.x.y 和 app2.x.y。SSO 登錄以后,可以將 Cookie 的域設(shè)置為頂域,即 x.y ,這樣所有子域的系統(tǒng)都可以訪問到頂域的 Cookie ,實(shí)現(xiàn)單點(diǎn)登錄功能。o2j28資訊網(wǎng)——每日最新資訊28at.com

圖片o2j28資訊網(wǎng)——每日最新資訊28at.com

四、循環(huán)登錄產(chǎn)生的根本原因

那么為什么會不斷循環(huán)登錄呢?o2j28資訊網(wǎng)——每日最新資訊28at.com

(1)從跳轉(zhuǎn)記錄來看,我們發(fā)現(xiàn)重新刷新頁面以后,重定向到了權(quán)限系統(tǒng),并且 Request Headers 中的 Cookie 信息沒有傳對應(yīng)的 Token 信息。o2j28資訊網(wǎng)——每日最新資訊28at.com

圖片o2j28資訊網(wǎng)——每日最新資訊28at.com

(2)跳轉(zhuǎn)到權(quán)限系統(tǒng)過后,再跳轉(zhuǎn)到本系統(tǒng)的時候,已經(jīng)獲取到了對應(yīng)的 Token 信息,但是在 Set-Cookie 信息的時候,出現(xiàn)了一個警告。o2j28資訊網(wǎng)——每日最新資訊28at.com

圖片o2j28資訊網(wǎng)——每日最新資訊28at.com

警告的具體內(nèi)容為:o2j28資訊網(wǎng)——每日最新資訊28at.com

圖片o2j28資訊網(wǎng)——每日最新資訊28at.com

大致意思是:這次執(zhí)行 Set-Cookie 操作被阻止了,原因是這個 Cookie 不是通過安全的連接進(jìn)行傳輸?shù)模覀冞@次訪問確實(shí)使用了 HTTP 進(jìn)行,本應(yīng)該通過設(shè)置  Secure 屬性來覆蓋對應(yīng)的 Cookie。o2j28資訊網(wǎng)——每日最新資訊28at.com

這里的 Secure 屬性是 Cookie 的一個屬性,Secure 屬性是說如果一個 Cookie 被設(shè)置了 Secure = true,那么這個 Cookie 只能用 HTTPS 協(xié)議發(fā)送給服務(wù)器,用 HTTP 協(xié)議是不發(fā)送的,而我們查看上面標(biāo)注位置的下一個 Login 請求確實(shí)沒有傳 Cookie 信息,從而繼續(xù)進(jìn)行用戶是否登錄校驗(yàn),進(jìn)入死循環(huán)過程, 可以看下面的示意圖:o2j28資訊網(wǎng)——每日最新資訊28at.com

圖片o2j28資訊網(wǎng)——每日最新資訊28at.com

五、清除瀏覽器緩存的底層原理及解決方法

5.1 清除瀏覽器緩存的底層原理

我們可以看到循環(huán)登錄以后,會在瀏覽器頁面上提示 xxx.x.y 重定向次數(shù)過多,嘗試清除 Cookie 信息,那清除 Cookie 信息以后,是不是真的就可以解決這個問題呢,我們嘗試著清除瀏覽器緩存,確實(shí)可以解決這個問題,那清除瀏覽器緩存來解決循環(huán)登錄問題的底層原理是什么呢,其實(shí)質(zhì)就是將 Cookie 刪除,其他域名設(shè)置 Cookie 上的 Secure 屬性也就一并刪除了,從而使用 HTTP 域名進(jìn)入重新登錄流程,可以正常設(shè)置 Cookie 信息。o2j28資訊網(wǎng)——每日最新資訊28at.com

5.2 其他解決辦法

方法一:使用 HTTPS 的方式進(jìn)行訪問o2j28資訊網(wǎng)——每日最新資訊28at.com

現(xiàn)實(shí)使用中,我們無法控制其他 HTTPS 訪問的具有相同頂級域名的服務(wù)不去設(shè)置 Cookie 的 Secure 屬性,因而我們在后面使用的過程中還是會遇到這個問題,那么有沒有一種徹底的解決辦法能夠避免這個問題再次出現(xiàn),我們前面已經(jīng)分析,之所以我們在開始使用 HTTP 能夠進(jìn)行正常訪問,然后突然間不能正常訪問了,就是因?yàn)橐呀?jīng)被 HTTPS 設(shè)置了的 Cookie 信息是無法被 HTTP 重新設(shè)置的,從而拿不到 Cookie 信息。那么就出現(xiàn)了第一種解決辦法,使用 HTTPS 的方式進(jìn)行訪問,即使其他服務(wù)設(shè)置了 Cookie 的 Secure 屬性,用 HTTPS 仍然能夠成功設(shè)置 Cookie 和獲取 Cookie。o2j28資訊網(wǎng)——每日最新資訊28at.com

方法二:在 Cookie 信息中新設(shè)置一個 newTokeno2j28資訊網(wǎng)——每日最新資訊28at.com

以上從 HTTP 轉(zhuǎn)為 HTTPS 訪問的方法在用戶主動找我們反饋時是能夠告訴它切換為 HTTPS 訪問的,但是如果對于一些沒有主動找我們反饋的用戶,其實(shí)是無法解決,可能喪失這個用戶造成用戶流失的情況,那么我們在用戶不進(jìn)行切換的情況下是否能夠解決這個問題。o2j28資訊網(wǎng)——每日最新資訊28at.com

同一個公司內(nèi)部接入的權(quán)限系統(tǒng)是一種底層公共能力,為了保證單點(diǎn)登錄,其實(shí)用戶信息的讀取都是通過同一個 Cookie 參數(shù)(比如叫 Token )讀取的,那么在其他域名設(shè)置了公共 Cookie 參數(shù)的 Secure 屬性而影響到 HTTP 登錄的時候,我們可以給服務(wù)新增加一個 Cookie 參數(shù) newToken 去解決。o2j28資訊網(wǎng)——每日最新資訊28at.com

六、擴(kuò)展: Cookie 的端口不隔離性

本文所闡述的問題,出現(xiàn)的背景是有兩個基本前提的:一是為了保證單點(diǎn)登錄,兩個域名屬于同一個頂級域名,權(quán)限系統(tǒng)中關(guān)于用戶信息的校驗(yàn)都是通過同一個 Cookie 屬性去讀取的;第二個是 HTTPS 設(shè)置了頂級域名的 Cookie 信息的 Secure 屬性,然后使用 HTTP 訪問會導(dǎo)致循環(huán)登錄。有些開發(fā)者可能會有這樣一個疑問,那就是 HTTPS 我們一般開通的端口是 443 , HTTP 我們一般開通的端口是 8080 ,為啥不從端口上進(jìn)行區(qū)分同一個 Cookie 屬性從而避免干擾呢?o2j28資訊網(wǎng)——每日最新資訊28at.com

這個在 Cookie 規(guī)范(RFC 6265)中有所描述,那就是 Cookie 不提供通過端口進(jìn)行隔離的,也就是說如果一個 Cookie 可以被一臺服務(wù)器上的運(yùn)行在某一個端口上的一個服務(wù)所讀取,那么也可以被這臺服務(wù)器上運(yùn)行在另外一個端口上的服務(wù)所讀取;如果一個 Cookie 可以被一臺服務(wù)器上的運(yùn)行在某一個端口上的一個服務(wù)所寫入,那么也可以被這臺服務(wù)器上運(yùn)行在另外一個端口上的服務(wù)所寫入。o2j28資訊網(wǎng)——每日最新資訊28at.com

七、總結(jié)

本文從實(shí)際開發(fā)過程中遇到的循環(huán)登錄問題入手,分析了由于設(shè)置 Secure 屬性導(dǎo)致使用 HTTP 訪問網(wǎng)頁無法保存 Cookie 信息從而導(dǎo)致循環(huán)登錄的根本原因,也給出了其他兩個解決此種問題的方案,對于其他開發(fā)人員解決權(quán)限系統(tǒng)循環(huán)登錄問題具有一定的借鑒意義。o2j28資訊網(wǎng)——每日最新資訊28at.com

參考資料:o2j28資訊網(wǎng)——每日最新資訊28at.com

單點(diǎn)登錄實(shí)現(xiàn)思路及方案o2j28資訊網(wǎng)——每日最新資訊28at.com

Sessions don't work in Chrome but do in IEo2j28資訊網(wǎng)——每日最新資訊28at.com

8.5. Weak Confidentialityo2j28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-112767-0.htmlCookie的secure屬性引起循環(huán)登錄問題分析及解決方案

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: PyTorch中使用回調(diào)和日志記錄來監(jiān)控模型訓(xùn)練?

下一篇: 我經(jīng)常會問應(yīng)聘者的三個React面試題

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
久久久久久久欧美精品| 亚洲欧洲在线免费| 国产精品久久久久久久电影| 国产精品久久一区二区三区| 国产亚洲人成a一在线v站| 狠狠做深爱婷婷久久综合一区| 在线观看欧美黄色| 99re亚洲国产精品| 午夜国产一区| 老色鬼久久亚洲一区二区| 欧美日韩精品系列| 国产亚洲福利一区| 亚洲精品欧美极品| 午夜精品久久久久久久99水蜜桃 | 亚洲精品国产拍免费91在线| 一本大道久久a久久综合婷婷 | 久久综合色婷婷| 欧美日韩高清在线播放| 国产人成一区二区三区影院| 亚洲激情小视频| 午夜精品亚洲| 欧美国产一区二区| 国产情侣久久| 日韩网站在线看片你懂的| 性感少妇一区| 欧美精品www在线观看| 国产日韩欧美中文| 亚洲精品视频一区二区三区| 欧美一区二区三区久久精品| 欧美精品亚洲精品| 黑人中文字幕一区二区三区| 国产精品99久久不卡二区| 久久中文字幕一区二区三区| 国产精品美女在线| 亚洲精品一区二区在线| 久久成人精品| 国产精品av免费在线观看| 亚洲福利一区| 欧美在线亚洲在线| 欧美视频在线免费看| 在线观看欧美日韩国产| 香蕉视频成人在线观看| 欧美日韩另类在线| 亚洲国产日韩一区| 久久精品在线视频| 国产精品久久久久久久久久三级 | 亚洲一区不卡| 欧美激情亚洲激情| 怡红院av一区二区三区| 午夜一区二区三区在线观看| 欧美日韩国产成人在线91| 亚洲成色777777女色窝| 欧美专区在线播放| 国产精品女主播一区二区三区| 亚洲久久成人| 免费观看在线综合| 韩日成人av| 午夜精品视频一区| 国产精品蜜臀在线观看| 一本色道久久综合亚洲精品按摩| 欧美成人精品在线视频| 黄色在线成人| 久久精品国产亚洲一区二区| 国产精品亚洲欧美| 亚洲在线成人精品| 欧美色精品在线视频| 99国产精品国产精品久久 | 欧美日韩国产色综合一二三四 | 老鸭窝91久久精品色噜噜导演| 国产有码一区二区| 欧美亚洲专区| 国产精品一区二区在线| 亚洲少妇自拍| 欧美视频日韩视频| 一区二区不卡在线视频 午夜欧美不卡在| 欧美成人69| 最近中文字幕mv在线一区二区三区四区| 久久久精品tv| 国色天香一区二区| 久久久久五月天| 久久激情久久| 国产精品一区二区欧美| 亚洲激情亚洲| 久久综合色播五月| 在线观看欧美日本| 免费成人黄色| 在线免费不卡视频| 久热精品视频在线| 激情五月婷婷综合| 久久亚洲精品视频| 影音先锋在线一区| 乱中年女人伦av一区二区| 一区二区亚洲欧洲国产日韩| 久久精品国产77777蜜臀| 国产午夜精品麻豆| 久久大逼视频| 亚洲第一精品福利| 欧美激情在线观看| 一区二区日韩精品| 国产精品免费视频xxxx| 欧美亚洲一区二区在线| 国产一区二区三区视频在线观看 | 在线精品高清中文字幕| 久久成人亚洲| 黄色成人在线观看| 欧美在线亚洲一区| 国产视频综合在线| 久久精品日产第一区二区| 黄色资源网久久资源365| 美乳少妇欧美精品| 久久九九全国免费精品观看| 精品盗摄一区二区三区| 欧美插天视频在线播放| 999亚洲国产精| 国产精品美女视频网站| 久久久欧美一区二区| 亚洲国产专区校园欧美| 欧美三日本三级少妇三2023| 午夜精品久久久久久久蜜桃app| 激情欧美日韩一区| 欧美日韩成人一区| 午夜一级在线看亚洲| 在线观看亚洲| 欧美日韩在线三级| 欧美在线视频一区二区| 最新国产の精品合集bt伙计| 国产精品二区在线| 久久久水蜜桃| 一区二区三区四区国产精品| 国产日韩欧美精品一区| 欧美jizzhd精品欧美喷水| 亚洲国产精品电影| 欧美视频一区二区三区| 欧美一区在线直播| 亚洲欧洲在线一区| 国产伦精品一区二区三区高清版 | 亚洲桃色在线一区| 狠狠色狠狠色综合日日91app| 欧美激情亚洲综合一区| 欧美一区二区三区日韩| 亚洲精品国产系列| 国产麻豆精品久久一二三| 欧美高清免费| 欧美中文字幕| 一区二区激情| 在线观看日韩精品| 国产精品乱人伦中文| 欧美大片第1页| 欧美一区二区三区电影在线观看| 亚洲精品中文在线| 黑丝一区二区| 国产精品日本一区二区| 欧美激情第一页xxx| 欧美亚洲一区二区在线观看| 亚洲国产三级| 国产日韩欧美不卡在线| 欧美日韩精品一本二本三本| 久久久久国产免费免费| 亚洲午夜一区| 亚洲精品乱码久久久久久蜜桃麻豆| 国产精品一区免费在线观看| 欧美精品在线播放| 久热这里只精品99re8久| 亚洲欧美精品| 99re6这里只有精品视频在线观看 99re6这里只有精品 | 国产婷婷色综合av蜜臀av| 久久躁日日躁aaaaxxxx| 亚洲一区二区精品| 亚洲国产精品专区久久 | 亚洲精品美女久久7777777| 国产一区二区三区高清播放| 国产精品激情偷乱一区二区∴| 欧美成人精品不卡视频在线观看| 午夜视频在线观看一区二区三区| 日韩网站在线观看| 亚洲精品国产精品国自产在线 | 91久久久一线二线三线品牌| 国产又爽又黄的激情精品视频 | 国产精品xxxav免费视频| 欧美激情第9页| 鲁大师成人一区二区三区| 久久av红桃一区二区小说| 亚洲视频axxx| 一区二区毛片| 亚洲伦理网站| 亚洲高清不卡在线观看| 黄色综合网站| 美女国产一区| 久久久天天操| 老**午夜毛片一区二区三区| 久久国产精品一区二区| 午夜激情一区| 午夜激情亚洲| 午夜精品久久久久久久蜜桃app | 亚洲视频你懂的| 99视频超级精品| 日韩视频免费| 妖精视频成人观看www| 日韩视频免费观看| 一区二区毛片| 亚洲在线播放| 欧美一区二区黄| 欧美一区网站| 久久久久国产精品一区二区|