未设置SameSite属性的Cookie为何会在跨域表单提交中被发送?
浏览器SameSite规则的过渡兼容逻辑
虽然规范中未设置SameSite的Cookie默认视为SameSite=Lax,但部分浏览器在规则落地初期有过渡策略。如果刚通过setcookies.php设置完Cookie就立刻发起跨域POST请求,浏览器可能还没触发严格的Lax校验,允许这一次跨域携带Cookie。等过段时间规则生效,后续请求就会被拦截,不再携带。Cookie的"新鲜度"触发临时豁免
新创建的Cookie存在短暂的"豁免期",浏览器为兼容旧网站遗留逻辑,会允许新鲜Cookie在首次跨域请求中携带。当Cookie存在超过一定时间,浏览器就会严格执行SameSite=Lax规则,阻止跨域表单提交携带。删除后重新设置,Cookie回到新鲜状态,就会重复这个现象。浏览器会话关联的校验延迟
如果设置Cookie的dskl.net页面还处于活跃会话(比如标签页未关闭),浏览器可能会把后续跨域请求视为和同域会话相关联,临时放宽Cookie携带限制。当会话状态变化(比如关闭标签页、会话超时),校验就会恢复严格,不再允许跨域携带。
内容的提问来源于stack exchange,提问作者dskloet
相关产品推荐
相关产品推荐

