首页 > 其他 > 详细

关于解决Chrome新版本中cookie跨域携带和samesite的问题处理

时间:2020-09-09 15:15:36      阅读:314      评论:0      收藏:0      [点我收藏+]

关于解决Chrome新版本中cookie跨域携带和samesite的问题处理

新版本处理方式如下

针对Chrome版本67及以上

注意,这个里面的SameSite不能设为null,设空的话,还是会走默认值Lax

其中,SameSite的值可以填3个:Strict,Lax,None.
缺省的值为Lax,而且当你设置其为空时,在新的Chrome中还是会给予默认值Lax.

3个模式的介绍

Strict

严格模式

Lax

宽松模式

None

可以在第三方环境中发送cookie
在这种模式下,必须同时启用Secure才行

Chrome版本(51~66)

在这些版本中,浏览器不接受SameSite=None.如果套用上面的代码会发现无法登录

解决方法1

	public static void setCookies(HttpServletResponse response, String name, String value, int selectExpires,
			boolean openbrowser) {
		ResponseCookie cookies = ResponseCookie.from(name, value) // key & value
				.httpOnly(true) // 禁止js读取
				.secure(true) // 在http下也传输
				.path("/") // path
				.maxAge(time(selectExpires)) // 1个小时候过期
				.sameSite("None") // 大多数情况也是不发送第三方 Cookie,但是导航到目标网址的 Get 请求除外
				.build();
		response.setHeader(HttpHeaders.SET_COOKIE, cookies.toString());
	}

 Chrome 计划将Lax变为默认设置。这时,网站可以选择显式关闭SameSite属性,将其设为None。不过,前提是必须同时设置Secure属性(Cookie 只能通过 HTTPS 协议发送),否则无效。

关于解决Chrome新版本中cookie跨域携带和samesite的问题处理

原文:https://www.cnblogs.com/cuijinlong/p/13638716.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!