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

设置SameSite=Strict属性的Cookie未生效是否为预期行为?

你观察到的Cookie始终被发送的现象属于符合当前浏览器实现的正常结果,核心是你对SameSite=Strict的作用边界存在认知偏差,叠加测试环境的特殊属性导致:

SameSite属性的核心作用规则

SameSite=Strict的限制逻辑是仅在「同站上下文」发起的请求中携带Cookie,只要请求的发起源和目标站点不属于同一站点(按公共后缀列表判定eTLD+1匹配),就不会携带该Cookie。

对于IP形式的站点,浏览器会将每个独立IP视为单独的站点,端口不影响跨站判定结果。

测试结果符合预期的原因

你测试的三个场景都携带Cookie,大概率是以下几个原因导致:

  • 你的Set-Cookie配置带有Secure属性,该属性要求Cookie仅能在HTTPS请求中被存储和携带。如果你是通过HTTP协议访问IPv4地址站点,该属性会导致Cookie的SameSite配置被浏览器忽略,直接按照默认的SameSite=Lax逻辑处理。SameSite=Lax允许跨站发起的顶级GET导航请求携带Cookie,刚好匹配你测试的所有场景表现。
  • 部分浏览器对直接使用IP访问的站点存在跨站判定的宽松处理逻辑:如果用户近期已经主动访问过该IP站点,浏览器会将跨站跳转的GET请求视为用户主动发起的可信操作,允许携带SameSite=Strict的Cookie。这是浏览器为避免用户体验受损做的特殊实现,不符合标准规范但属于行业普遍存在的情况。
  • 如果你在测试跳转之前,已经在当前浏览器会话中手动访问过目标IP站点,部分浏览器会将后续的跨站跳转判定为用户预期操作,放宽SameSite限制携带Cookie。
正确实现GET请求CSRF防护的建议

仅靠SameSite=Strict无法覆盖所有GET请求的CSRF场景,建议补充以下逻辑:

  • 关键操作不要使用GET请求承载,统一使用POST请求
  • 额外添加请求参数/请求头的CSRF Token校验,不要只依赖Cookie中的Token
  • 改用域名部署站点,避免使用IP访问带来的浏览器兼容问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 08:45:06