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

为何Chrome应用面板未显示的Cookie会被跨子域XHR请求携带?

问题原因解析

1. Cookie的Domain默认行为

当你未显式指定Cookie的domain属性时,浏览器会自动将其设置为请求的目标主机名(即csrfexample.com)。这个Cookie的生效逻辑是:只要发起请求的页面域名与csrfexample.com属于同一站点(Same-Site),且请求目标是csrfexample.com,浏览器就会自动携带该Cookie。

2. 子域面板无法查看Cookie的原因

浏览器的Application -> Cookies面板仅展示与当前页面域名直接绑定的Cookie:

  • 当前页面域名是attacker.csrfexample.com,面板只会显示domain为attacker.csrfexample.com的Cookie。
  • 而domain为csrfexample.com的Cookie属于主域资源,仅会在csrfexample.com域名的页面面板中显示,但这并不影响子域向主域发起请求时携带它。

3. SameSite:Lax允许POST请求携带Cookie的原因

现代浏览器对SameSite规则的判断基于eTLD+1(有效顶级域名+1):

  • attacker.csrfexample.com和csrfexample.com的eTLD+1都是csrfexample.com,属于同一站点。
  • SameSite:Lax的核心限制是阻止跨站点的非GET请求携带Cookie,但对同一站点内的跨域请求(子域到主域)没有这个限制,因此POST请求会正常携带Cookie。

如果需要阻止子域请求携带该Cookie,你可以显式设置Cookie的domain为当前主域,并结合SameSite: 'strict',或者确保请求发起方与目标域名不属于同一站点。

内容的提问来源于stack exchange,提问作者Ramya Balasubramanian

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 00:35:00