You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

跨站Cookie的SameSite属性原理及相关问题咨询

关于Cookie SameSite属性及跨站Cookie的疑问解答

问题1

当Cookie设置了SameSite=strict属性时,是否仅在页面域名与服务器域名匹配,或者请求来自该Cookie所属页面的情况下才会被发送?

是的。SameSite=strict的Cookie仅会在「同站请求」中被发送——也就是当前页面的URL域名,和请求目标服务器的域名完全一致(属于同一站点),或者请求是从该Cookie所属的同站页面主动发起的(比如点击同站内的链接、提交同站内的表单)。任何跨站场景下(比如从其他域名的页面发起对该Cookie所属服务器的请求),这个Cookie都不会被浏览器附带发送。

问题2

Cookie是与其被设置时所在的页面相关,还是与设置它的服务器相关?

Cookie完全和设置它的服务器绑定,和设置时所在的页面无关。浏览器会根据Set-Cookie响应头里的Domain属性(如果没指定则默认是设置该Cookie的服务器域名)来存储Cookie,之后只有向该域名(或其子域名,若指定了Domain且符合规则)发起请求时,才会判断是否发送这个Cookie。

问题3

场景:

  1. 页面page.com向服务器server.com发起请求
  2. 服务器server.com返回的响应头中包含Set-Cookie: name=value; SameSite=strict

请问该Cookie会在以下哪种情况被发送:

  1. 当请求来自该Cookie被设置时所在的页面,即从page.com向server.com发起请求时
  2. 当页面域名与服务器域名相同时,即从page.com向page.com发起请求时
  3. 当页面域名与设置该Cookie的服务器域名相同时,即从server.com向server.com发起请求时
  4. 浏览器会阻止该Cookie被设置

只有第3种情况会发送:

  • 情况1:page.com和server.com属于跨站域名,SameSite=strict的Cookie不会在跨站请求中发送;
  • 情况2:该Cookie绑定的是server.com,page.com的请求目标是自身服务器,和这个Cookie无关,不会发送;
  • 情况3:当前页面域名与Cookie绑定的服务器域名一致,属于同站请求,Cookie会被正常发送;
  • 情况4:浏览器不会阻止设置该Cookie,只要server.com的响应符合Cookie设置规则,Cookie会被正常存储。

问题4

场景:

  1. 页面page-1.com向服务器server.com发起请求
  2. 服务器server.com返回的响应头中包含Set-Cookie: cookie-1=value; SameSite=none; Secure
  3. 页面page-2.com向服务器server.com发起请求
  4. 服务器server.com返回的响应头中包含Set-Cookie: cookie-2=value; SameSite=none; Secure

请问:

  • 若从page-3.com向server.com发起请求,cookie-1和cookie-2这两个Cookie会被发送吗?
  • 若步骤2和步骤4中的Cookie名称相同,它们会互相覆盖吗?

解答:

  • 会被发送。SameSite=none的作用就是允许Cookie在跨站请求中被发送,只要请求是HTTPS协议(因为指定了Secure属性),不管发起请求的页面是page-1.com、page-2.com还是page-3.com,向server.com发起请求时这两个Cookie都会被浏览器附带发送。
  • 会互相覆盖。两个Cookie的绑定域名都是server.com(未指定Domain时默认是设置Cookie的服务器域名),同一域名下的同名Cookie,后设置的那个会覆盖之前的,和设置时的来源页面无关。

内容的提问来源于stack exchange,提问作者George Manlove

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 08:50:14