zoukankan      html  css  js  c++  java
  • 关于解决Chrome新版本中cookie跨域携带和samesite的问题处理

    关于解决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 协议发送),否则无效。

  • 相关阅读:
    二部图(二分图判定--dfs)
    chd校内选拔赛题目+题解
    敌兵布阵 线段树单点更新
    Employment Planning DP
    Tickets 基础DP
    Super Jumping! Jumping! Jumping! 基础DP
    【高精度加法】
    【最短路径之dijkstra(迪杰斯特拉)算法】
    各类最短路算法基本模板-C++
    【最小生成树之Prim算法】-C++
  • 原文地址:https://www.cnblogs.com/cuijinlong/p/13638716.html
Copyright © 2011-2022 走看看