日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Cookie的SameSite了解吧,那SameParty呢?

大家好,我是年年!

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),牡丹江企業(yè)網(wǎng)站建設(shè),牡丹江品牌網(wǎng)站建設(shè),網(wǎng)站定制,牡丹江網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,牡丹江網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

今天介紹的是三方cookie相關(guān)的內(nèi)容,本文會(huì)講清:

  1. 什么是三方cookie?
  2. same-site的變化是什么,對(duì)我們的業(yè)務(wù)有什么影響?
  3. 為什么有了same-site,還需要same-party?

什么是三方cookie

三方指的是非同站,這個(gè)同站和同源協(xié)議中的源origin不同,它的要求更寬松。

同源協(xié)議中的源是由「協(xié)議+域名+端口」三者一起定義的,有一個(gè)不同就不算同源,而同站只受域名的約束,并且還不要求一模一樣——只要「有效頂級(jí)域名+二級(jí)域名」相同,都算同站。

有效頂級(jí)域名是由Mozilla維護(hù)的一份表格,其中包括.com、.co.uk、.github.io等。所以ai.taobao.com和www.taobao.com是同站的,因?yàn)樗鼈兊捻敿?jí)域名(.com)+二級(jí)域名(.taobao)相同。

現(xiàn)在知道了什么是站,就可以很簡(jiǎn)單區(qū)分了:

打開(kāi)開(kāi)發(fā)者工具的application,domain一列中顯示和當(dāng)前域名不同的就是三方cookie。

如何攜帶三方cookie

cookie的攜帶是瀏覽器自動(dòng)的操作,規(guī)則是「不認(rèn)來(lái)源,只看目的」,下面會(huì)講清這句話的意思。

cookie下發(fā)

首先,需要先了解cookie的下發(fā),服務(wù)端會(huì)將其下發(fā)到瀏覽器,方法是通過(guò)響應(yīng)頭中的set-cookie字段。

里面還包括一些配置屬性,關(guān)鍵的是其中的domain。

domain

指定cookie未來(lái)使用時(shí),可以被攜帶到哪些域名。其值可以設(shè)置為當(dāng)前服務(wù)端的父級(jí)域名或其本身,比如ai.taobao.com設(shè)置的cookie的domain可以為.taobao.com,所設(shè)置值的所有子域名都可以使用,比如www.taobao.com。

如果不設(shè)置,會(huì)默認(rèn)為當(dāng)前域名ai.taobao.com,并且只有自己可以使用,子域名sub.ai.taobao.com都不能使用,適用范圍就小了很多,所以一般都會(huì)設(shè)置。

但是不能設(shè)置為跨站點(diǎn)的.baidu.com,也不能是頂級(jí)域名.com。

其余的屬性還有這些:

1.path:指定cookie未來(lái)使用時(shí),可以被攜帶到合法域名的哪些URI。和domain很像,也只能設(shè)置為當(dāng)前路徑的父級(jí)路徑或其本身,設(shè)置值的所有子路徑都可以訪問(wèn)。

2.expire/max-age: 指定cookie的有效期,其中expire是一個(gè)絕對(duì)時(shí)間,max-age是相對(duì)時(shí)間,單位是秒,兩者同時(shí)存在時(shí),max-age優(yōu)先級(jí)更高;如果兩者都沒(méi)有,則為會(huì)話級(jí)別的cookie,即用戶關(guān)閉瀏覽器時(shí)失效。

Set-Cookie: id=nian; Expires=Wed, 30 Aug 2022 00:00:00 GMT; Max-Age=3600

3.secure:只能在HTTPS環(huán)境中被下發(fā)以及攜帶。

4.http-only:禁止客戶端腳本通過(guò) document.cookie 獲取 cookie,避免 XSS 攻擊。

5.還有下面會(huì)重點(diǎn)講解的same-site和same-party。

Cookie攜帶

上面提到,cookie的domain字段很關(guān)鍵,它規(guī)定請(qǐng)求哪些域名才會(huì)攜帶,注意,這里指的是請(qǐng)求目的地的域名。

舉個(gè)例子,首先我通過(guò)響應(yīng)頭在瀏覽器中設(shè)置了一個(gè)cookie,domain是.a.com。

set-cookie: id=nian; domain=.a.com;

現(xiàn)在有三個(gè)請(qǐng)求:

  1. 網(wǎng)頁(yè)www.a.com/index.html的前端頁(yè)面,去請(qǐng)求接口www.b.com/api。
  2. 網(wǎng)頁(yè)www.b.com/index.html的前端頁(yè)面,去請(qǐng)求接口www.a.com/api。
  3. 網(wǎng)頁(yè)www.a.com/index.html的前端頁(yè)面,去請(qǐng)求接口www.a.com/api。

有點(diǎn)繞,可以暫停思考10秒,哪個(gè)請(qǐng)求會(huì)帶上之前設(shè)置的cookie呢?

答案是2、3都會(huì)帶上cookie,因?yàn)閏ookie的取用規(guī)則是去看請(qǐng)求的目的地,2、3請(qǐng)求的都是www.a.com/api命中domain=.a.com規(guī)則。

這就是「不認(rèn)來(lái)源,只看目的」的意思,不管請(qǐng)求來(lái)源是哪里,只要請(qǐng)求的目的是a站,cookie都會(huì)攜帶上。

通過(guò)這個(gè)案例也可以再回顧一下:3的這種情況的叫第一方cookie,2的這種情況叫第三方cookie。

限制三方cookie的攜帶

「不認(rèn)來(lái)源,只看目的」規(guī)矩在2020年開(kāi)始被打破,這種變化體現(xiàn)在瀏覽器將same-site:lax設(shè)置為默認(rèn)屬性。

chrome操作比較平緩,目前可以手動(dòng)設(shè)置same-site:none恢復(fù)之前規(guī)則。

但在safari中如果這樣設(shè)置,會(huì)被當(dāng)作same-site:strict。

可以看到,在safari中使用的全是第一方cookie,直觀的體驗(yàn)就是在天貓登錄完,打開(kāi)淘寶,還需要再登錄一次。

也就是說(shuō)現(xiàn)在cookie的取用是「既看來(lái)源,又看目的」了。

SameSite

上面提到的same-site是cookie的一個(gè)屬性,它制約第三方cookie的攜帶,其值有三個(gè)none、strict、lax。

  1. strict代表完全禁止三方cookie,這是最嚴(yán)格防護(hù),可以避免被CSRF攻擊,但缺點(diǎn)也很明顯,像天貓、淘寶這種同屬一個(gè)主體運(yùn)營(yíng)的網(wǎng)站不得不重復(fù)登錄。
  2. none代表完全不做限制,即之前「不認(rèn)來(lái)源,只看目的」的cookie取用原則。
  3. Lax則是折中,在某些情況下會(huì)限制三方cookie的攜帶,某些情況又放行,這也是瀏覽器的默認(rèn)值(包括safari)。

在safari,same-site的默認(rèn)值是lax,如果把它設(shè)置為same-site:none,會(huì)適得其反,被當(dāng)作strict處理。

SameSite的修改

可以這么理解,瀏覽器將same-site的默認(rèn)值從none調(diào)整到了lax。

same-site:lax的具體規(guī)則如下:

而在這之前是會(huì)全部發(fā)送的。

SameSite修改帶來(lái)的影響

像a鏈接這種,沒(méi)有受到影響,依舊會(huì)帶上三方cookie,這樣可以保證從百度搜索中打開(kāi)淘寶,是有登錄狀態(tài)的。

但是對(duì)大部分業(yè)務(wù)的影響是巨大的,比如監(jiān)控埋點(diǎn)系統(tǒng)。

埋點(diǎn)監(jiān)控SDK是用圖片的src去做請(qǐng)求的發(fā)送的,從上面的表格可知,變成lax后默認(rèn)不發(fā)送了,這時(shí)用戶的身份便無(wú)法確認(rèn),UV也沒(méi)法統(tǒng)計(jì)了。

為什么埋點(diǎn)監(jiān)控用會(huì)圖片的src,之前詳細(xì)寫過(guò)一篇文章,戳??這里??。

為了解決這些問(wèn)題,大部分公司目前的解決方案是設(shè)置same-site:none并且配合secure,就可以像以往一樣,繼續(xù)攜帶第三方cookie。

但這不是版本答案。

SameParty

上面說(shuō)到,為了繞開(kāi)瀏覽器對(duì)三方cookie的限制,保障業(yè)務(wù)的正常,我們的解決方式是把same-site又設(shè)置回none。

但這不是長(zhǎng)久之策,一來(lái),瀏覽器把same-site的默認(rèn)值從從none調(diào)整到lax可以避免CSRF攻擊,保障安全,可我們?yōu)榱藰I(yè)務(wù)正常運(yùn)行,卻又走了回頭路;二來(lái),chrome承諾2022年,也就是今年,會(huì)全面禁用三方cookie,屆時(shí)和在safari一樣,我們沒(méi)法再用這種方法去hack。

如果我們不想使用same-site:none,或者說(shuō),未來(lái)用不了這種方式了,same-party將是我們的唯一選擇。

什么是 SameParty

繼續(xù)沿用阿里系的例子,same-party可以把.taobao.com、.tmall.com和.alimama.com三個(gè)站合起來(lái),它們?cè)O(shè)置的cookie在這個(gè)集合內(nèi)部不會(huì)被當(dāng)作第三方cookie對(duì)待。

首先需要定義First-Party集合:在.taobao.com、.tmall.com和.alimama.com三個(gè)站的服務(wù)器下都加一個(gè)配置文件,放在/.well-know/目錄下,命名為first-party-set。

其中一個(gè)是“組長(zhǎng)”,暫定為.taobao.com,在它的的服務(wù)器下寫入。

// /.well-know/first-party-set
{
"owner": ".taobao.com",
"members": [".tmall.com", ".alimama.com"]
}

另外兩個(gè)是組員:

// /.well-know/first-party-set
{
"owner": ".taobao.com",
}

并且,在下發(fā)cookie時(shí),需要注明same-party屬性:

Set-Cookie: id=nian; SameParty; Secure; SameSite=Lax; domain=.taobao.com

這樣,我們打開(kāi).tmall.com的網(wǎng)站,向.taobao.com發(fā)起AJAX請(qǐng)求,都會(huì)帶上這個(gè)cookie,即使當(dāng)前的same-site屬性是lax,因?yàn)檫@集合中的三個(gè)域名都會(huì)被當(dāng)作一個(gè)站對(duì)待,也就是說(shuō),在瀏覽器眼中,這個(gè)cookie現(xiàn)在就是第一方cookie。

而不在集合中的baidu.com發(fā)起的AJAX請(qǐng)求則不會(huì)帶上。

需要注意的是,使用same-party屬性時(shí),必須要同時(shí)使用https(secure屬性),并且same-site不能是strict。

結(jié)語(yǔ)

對(duì)三方cookie的限制一是為了瀏覽器安全,但在國(guó)外推動(dòng)的更重要原因是個(gè)人的隱私安全。但不論是出于什么目的,這種改變都會(huì)對(duì)當(dāng)前的業(yè)務(wù)架構(gòu)造成很大的影響。

same-site:lax變成默認(rèn)是一個(gè)暫時(shí)的預(yù)警,它限制了特定場(chǎng)景下的第三方cookie使用。目前處于比較柔和的過(guò)渡期,因?yàn)樵诖蟛糠譃g覽器中,我們可以簡(jiǎn)單地將它調(diào)整回same-site:none來(lái)解除這些限制,和以前一樣暢通無(wú)阻。

但未來(lái)這項(xiàng)限制終將無(wú)法脫下,same-party才是版本答案,有了它,我們可以靈活定義哪些站屬于業(yè)務(wù)意義上的“第一方”,哪些才是我們想要的“第三方”。


文章標(biāo)題:Cookie的SameSite了解吧,那SameParty呢?
當(dāng)前鏈接:http://www.5511xx.com/article/dhghdeg.html