• Chrome 配置samesite=none方式


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

    文章目录


    前言

    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";
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

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

    修改conf/context.xml

    
    
    
    
        
        
        WEB-INF/web.xml
        ${catalina.base}/conf/web.xml
    
        
        
        
    	
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

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

  • 相关阅读:
    信息化发展64
    Tomcat为什么支持线程池?
    . Flume面试题
    百度算法面试小总结
    tomcat探究二搭建简单的servlet容器
    准备篇(四)HTTP 基本原理
    机器学习(一)
    爬虫的三大库
    k8s之Service
    一、CSS背景样式[背景样式、盒子阴影]
  • 原文地址:https://blog.csdn.net/m0_67400973/article/details/126098931