- 何谓Cookie以及SameSite
- Chrome 80+后的调整& 检测方式
- 自家网站的程式码该如何调整
何谓Cookie以及SameSite
cookie
中文上可以理解成一块暂时存放在使用者浏览器的资料,并可以被提取用来记录使用者的状态、差异化使用者的体验以及后续追踪行为。而写入的方式可以透过服务器(Server)在回复(Response)浏览器的请求(Request)时,在描述部分(Header)带上Set-Cookie key=value
的栏位。
Cookie另外还有第一方合第三方的分别,如果发送请求网址与当前网页的网域一致,我们称带在请求上的cookie为第一方cookie;如果是网页上一些置放在第三方网域地下的资源发出的请求(IE图片、追踪程式码)所附挂的cookie,则称之为第三方cookie
SameSite
而SameSite即为一项在写入cookie(Set- Cookie:key = value)时可加注的属性(attribute),会使浏览器依据same-site/cross-site request而对已写入的cookie产生不同的行为。这边的site,指的是有相同的<domain name>.<public suffix>
,例如,yahoo.com就是一个site。只要site部分相同,子网域也会当做是同一个site。例如:new.yahoo.com和finance.yahoo.com是同一个site。
以下针对SameSite三个值None,Strict & Lax产生的行为做进一步的说明:
SameSite = None
无论是same-site还是cross- site的request上,都可以带有该cookie
小明在picture.com上看了一张图片( https://picture.com/img/cat.jpg ),该图片的response带有的header叙述,这个cookie便成功被写入小明当前的浏览器。Set-Cookie: cat_image_loaded=1, SameSite=Nonecat_image_loaded=1
两天后小明在浏览blog.com这个网站时再度看到该图片,则当blog.com向https://picture.com/img/cat.jpg发出request请求该图片的同时,cat_image_loaded=1这个cookie也一并被发出。
SameSite=Strict
仅限same-site request 才能够带有此cookie。
SameSite = Strict
仅限same- site request才能够带有此cookie
小明在picture.com上看了一张图片( https://picture.com/img/cat.jpg ),该图片的response带有的header叙述,这个cookie便成功被写入小明当前的浏览器。Set-Cookie: cat_image_loaded=1, SameSite=Strictcat_image_loaded=1
两天后小明在浏览blog.com这个网站时再度看到该图片,则当blog.com向https://picture.com/img/cat.jpg发出request请求该图片的同时,基于这是一个cross -site request且当前cat_image_loaded=1已被注记为,所以该cookie不会被送出。SameSite=Strict
SameSite= Lax
全部的same-site request以及部分cross- site request能够写入cookie。这里的部分包含以下能送出request的网页元件<a>, <link rel="prerender">, <form method="GET">
小明在picture.com上看了一张图片( https://picture.com/img/cat.jpg ),该图片的response带有的header叙述,这个cookie便成功被写入小明当前的浏览器。Set-Cookie: cat_image_loaded=1, SameSite=Laxcat_image_loaded=1
两天后小明在浏览blog.com这个网站时再度看到该图片,则当blog.com向https://picture.com/img/cat.jpg发出request请求该图片的同时,基于这是一个cross -site request且当前cat_image_loaded=1已被标示为,所以该cookie不会被送出。SameSite=Lax