久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > web前端技巧|一場由SameSite字段引發(fā)的悲劇

web前端技巧|一場由SameSite字段引發(fā)的悲劇

來源:千鋒教育
發(fā)布人:小千
時(shí)間: 2021-04-06 09:10:00 1617671400

      最近,小千早上起來的時(shí)候,有同學(xué)反映后臺(tái)的更新功能失效了,打開之后發(fā)現(xiàn)確實(shí)后臺(tái)顯示報(bào)錯(cuò),如下圖所示。

1

      后來排查了一下,發(fā)現(xiàn)這次請(qǐng)求確實(shí)沒有發(fā)cookie信息到后臺(tái)

2

      由于后臺(tái)是用session存儲(chǔ)用戶的登錄狀態(tài)的,所以如果這里少了cookie信息的話,由于http本身是無狀態(tài)的,導(dǎo)致不知道是哪個(gè)用戶登錄了,這里就報(bào)了ERROR_SESSION這樣的錯(cuò)誤,苦思冥想之后,各種搜索,突然發(fā)現(xiàn)了一點(diǎn)線索,就是這個(gè) SameSite字段搞得怪。

      關(guān)于SameSite字段的介紹

      SameSite 是HTTP響應(yīng)頭 Set-Cookie 的屬性之一。它允許您聲明該Cookie是否僅限于第一方或者同一站點(diǎn)上下文。

      SameSite 接受下面三個(gè)值:

      Lax

      Cookies允許與頂級(jí)導(dǎo)航一起發(fā)送,并將與第三方網(wǎng)站發(fā)起的GET請(qǐng)求一起發(fā)送。這是瀏覽器中的默認(rèn)值。

      Strict

      Cookies只會(huì)在第一方上下文中發(fā)送,不會(huì)與第三方網(wǎng)站發(fā)起的請(qǐng)求一起發(fā)送。

      None

      Cookie將在所有上下文中發(fā)送,即允許跨域發(fā)送。

      注意:以前 None 是默認(rèn)值,但最近的瀏覽器版本將 Lax 作為默認(rèn)值,以便對(duì)某些類型的跨站請(qǐng)求偽造 (CSRF) 攻擊具有相當(dāng)強(qiáng)的防御能力。

      問題解決

      由于更新接口這里的請(qǐng)求方式是 post,然后現(xiàn)在chrome瀏覽器里面的SameSite字段的默認(rèn)值是Lax,導(dǎo)致cookie信息沒有被發(fā)送到后臺(tái)去,經(jīng)過一輪搜索之后,發(fā)現(xiàn)要添加以下內(nèi)容,才能完整解決這個(gè)問題

3

      由于我們現(xiàn)在后臺(tái)的請(qǐng)求庫是 axios,所以要在 axios這里添加一個(gè)配置項(xiàng)

      axios.defaults.withCredentials = true;//允許跨域攜帶cookie信息

      再修改一下chrome瀏覽器中SameSite字段的設(shè)置,具體步驟如下所示:

      在地址欄輸入,chrome://flags

4

      然后輸入 SameSite,設(shè)置以下三處為 Disabled

5

      接下來重啟以下瀏覽器,然后再看一下發(fā)送的請(qǐng)求,這個(gè)時(shí)候發(fā)現(xiàn)cookie信息已經(jīng)可以正確發(fā)送了,

6

      問題解決!?。?/p>

      最后對(duì)前端開發(fā)感興趣的同學(xué),可以了解一下千鋒教育web前端培訓(xùn)班提供的web前端學(xué)習(xí)路線,包括HTML5、CSS3、JavaScript及其常用的擴(kuò)展庫,能夠讓你對(duì)入門前端開發(fā)有一個(gè)清晰的認(rèn)識(shí),想要獲取前端完整學(xué)習(xí)路線和免費(fèi)的學(xué)習(xí)資料可以添加我們的web前端技術(shù)分享交流qq群:857920838  加群找群管理領(lǐng)取即可,等你來哦~~

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
C++的traits技術(shù)到底是什么?

在C++編程中,traits是一種編程技巧,其主要目的是在編譯時(shí)提供關(guān)于類型的額外信息。它可以將類型的一些特性(如其關(guān)聯(lián)類型、屬性、函數(shù)等)抽...詳情>>

2023-10-14 03:00:03
汽車行業(yè)什么工作會(huì)用到MATLAB?

MATLAB在汽車行業(yè)的應(yīng)用MATLAB是一種用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析和數(shù)值計(jì)算的高級(jí)語言和交互式環(huán)境。在汽車行業(yè)中,MATLAB的應(yīng)用非常廣...詳情>>

2023-10-14 02:45:08
紅帽RHEL8和7有什么區(qū)別?

一、軟件包管理器的區(qū)別軟件包管理器是操作系統(tǒng)中管理軟件包的工具,RHEL 8和7在軟件包管理器方面有一些重要的區(qū)別:RHEL 8采用了新的軟件包管...詳情>>

2023-10-14 02:41:24
什么是軟件即服務(wù)(SaaS)?

一、軟件即服務(wù)(SaaS)的定義軟件即服務(wù)(SaaS)是一種基于云計(jì)算的軟件交付模式,用戶可以通過訂閱或按需使用這些應(yīng)用程序。在傳統(tǒng)模式下,軟...詳情>>

2023-10-14 02:39:43
oracle怎么樣實(shí)現(xiàn)數(shù)據(jù)庫跨機(jī)房同步?

一、oracle怎么樣實(shí)現(xiàn)數(shù)據(jù)庫跨機(jī)房同步除了使用第三方工具,Oracle提供了extended cluster可以實(shí)現(xiàn)類似的功能,使用Oracle RAC + ASM。簡單說下...詳情>>

2023-10-14 01:57:43
快速通道