Chrome 配置samesite=none方式

本文介绍了Chrome从70版本开始的同源策略问题,特别是80版本后默认的SameSite=Lax限制了跨域Cookie传输。针对这个问题,提出了三种解决方案:修改浏览器配置(适用于用户范围可控的情况),使用Nginx进行设置,以及针对Tomcat服务器的配置调整。详细步骤和注意事项也在文中给出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

Chrome从70版本开始,出现了所谓的同源策略问题。80版本开始默认SameSite=Lax,导致跨域Cookie传输收到限制。

我们遇到的问题是:从其他网站跳转回来的时候,地址栏在正常地址的基础上出现了JSESSIONID=XXXXXXXXX,导致原有session失效。


二、解决方案

1.方案一:修改浏览器配置

此方式比较粗暴,直接将浏览器的SameSite的属性设置回到以前的None状态。但缺点是每台客户端机器都需要配置,适用于用户范围可控的情景。

据说从91版本开始,此方式失效,未进行测试。。。。

1)chrome地址栏输入chrome://flags
2)通过禁用“SameSite by default cookies”和“Cookies without SameSite must be secure”功能开关
3)重新启动浏览器

方式2和方式3是设置samesite=none,且显式声明secure=true,只支持https且samesite=none的情况下跨域携带cookie。

2.方案二:使用Nginx

# 设置一个变量,用于判断是否增加SameSite=None属性
set $cookiePathMagicFlag '';
# 00~69 之间Chrome, 设置为-evil'
if ($http_user_agent ~ "Chrome/([0-6][0-9].)"){

    set $cookiePathMagicFlag '-evil';
}

location / {
    # nginx其他配置
    # xxxxxxxxx
    # 增加SameSite=None、secure配置
    proxy_cookie_path /$cookiePathMagicFlag "/; httponly; secure; SameSite=None";
}

3.方案三:若服务器为Tomcat,可使用以下方式(Tomcat8.5.x以上版本)

修改conf/context.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- The contents of this file will be loaded for each web application -->
<Context>

    <!-- Default set of monitored resources. If one of these changes, the    -->
    <!-- web application will be reloaded.                                   -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->
    <!-- 配置sameSiteCookies=None -->
	<CookieProcessor sameSiteCookies ="None" />
</Context>

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值