问题

Chrome 浏览器升级到80版,针对sameSite设置更加严格,默认不允许设置第三方Cookie

查阅资料都是讲述为什么Chrome采取更加严格的cookie设置策略,没有详细的解决方案

我的情况说明,希望对你们有参考价值

环境:因为本站被嵌入到其他产品中使用,需要在iframe中实现自动登录,相当于我们站点是第三方在人家的产品中设置cookie来实现自动登录

参考资料

sameSite 介绍: https://www.cnblogs.com/gxp69/p/12565927.html

浏览器设置解决:https://www.cnblogs.com/tianma3798/p/13517449.html

后端Tomcat设置解决:https://stackoverflow.com/questions/57505939/how-to-set-samesite-cookie-in-tomcats-cookie-processor

方案:

肯定不可以在浏览器端设置,容易造成安全漏洞,因此只能通过后端来进行适配解决

因为samesite 设置为none, 必须是secure,也就是采用https协议

在Nginx中对本站配置https配置,配置完成后,发现中间有一环是sendRedirect重定向,请求协议从https降级到http,又需要解决这个问题

解决方案

1.Nginx 的location 中新增

proxy_set_header X-Forwarded-Proto $scheme;

2.Tomcat中的server.xml中新增

<Host name="localhost"  appBase="webapps"unpackWARs="true" autoDeploy="true">...<Valve className="org.apache.catalina.valves.RemoteIpValve" protocolHeader="X-Forwarded-Proto" />
....</Host>

3.代码中设置获取https协议

/*** 返回应用的根URL,包含结尾的<code>/</code>。兼容存在Apache* mod_proxy反向代理的情况:首先判断是否有x-forwarded-host头,如有则从中得出原始请求的HOST头,再计算.* (详见http://httpd.apache.org/docs/2.2/mod/mod_proxy.html) <b>例子</b>: if request* "http://localhost:8080/app1/dir1/page1.jsp", the method return "http://localhost:8080/app1".* 增加X-Forwarded-Proto头判断,如果有,则从请求中获取最原始的协议,可支持https反向代理至http.* */public static String getContextUrl(HttpServletRequest request) {String xForwardedHost = request.getHeader("X-Forwarded-Host");String orginProtocol = request.getHeader("X-Forwarded-Proto");String host = "";if (!StringUtil.isEmpty(xForwardedHost)) {host = StringHelper.split(xForwardedHost, ",")[0].trim();} else {host = request.getHeader("Host");}String protocol = "";if (StringUtil.isNotEmpty(orginProtocol)) {if (("https").equals(orginProtocol.toLowerCase())) {protocol = "https";} else {protocol = "http";}} else {protocol = request.getScheme();}return protocol + "://" + host + getContextPathWithSlash(request);}

协议问题解决,需要解决第三方Cookie的问题

我用的Tomcat 9.0.38 版本

在Tomcat的conf/context.xml文件中新增

 <CookieProcessor className="org.apache.tomcat.util.http.LegacyCookieProcessor" sameSiteCookies="None"/

还有一个小问题,就是http 请求到https的时候referer路径不全

参考资料

https://www.cnblogs.com/amyzhu/p/9716493.html

设置

在html页面的<head>标签中新增

<meta name="referrer" content="no-referrer-when-downgrade">

Chrome浏览器升级80以后导致重定向自动登录失效问题记录和解决方案相关推荐

  1. Chrome浏览器地址栏配置二维码自动生成工具

    打开Chrome浏览器 新开一个窗口地址栏输入 chrome://flags/ 搜索qr code 下拉框选择Enable选项 重启浏览器即可 点击需要生成二维码的网页地址栏 出现如下图标 点击小图标 ...

  2. Chrome浏览器升级配置

    Chrome浏览器禁止更新 打开Chrome浏览器,在地址栏中输入chrome://help,按下回车键 谷歌无法启动更新检查(错误代码为4: 0x80070005-system level) 快捷键 ...

  3. bug历程——记一次由chrome浏览器Stalled优化缓存导致的请求bug

    故事的开始是这样的 在一个月黑风高的夜晚,秋名山小白依旧在写着bug,这次他想实现的是解决重复请求问题.其实这个问题解决方案很普通,小白准备使用AOP+Redis分布式锁. 一切都很愉快的进行着,问题 ...

  4. [网络安全自学篇] 二.Chrome浏览器保留密码功能渗透解析及登录加密入门笔记

    补充学习资料: TK13大神Windows PE专栏 https://blog.csdn.net/u013761036/article/category/6401236 TK13大神Windows对抗 ...

  5. chrome 浏览器 https 不安全 导致密码不能自动保存

    参考 https://zhidao.baidu.com/question/392953253656295525.html 一开始都没注意到, 证书保存的按钮 在高级 证书设置中 直接导入该站证书 重启 ...

  6. 解决Chrome浏览器中无法通过代码实现自动播放错误

    错误提示为:Uncaught (in promise) DOMException: play() failed because the user didn't interact with the do ...

  7. 谷歌Chrome浏览器低延迟(低于500ms)播放海康威视、浙江大华RTSP解决方案(演示视频)

    Chrome.Firefox等浏览器低延迟(300ms)播放海康.大华RTSP解决方案(演示视频)

  8. ID的权限问题导致免密码登录失效

    2019独角兽企业重金招聘Python工程师标准>>> 思路:我使用的ID是aapp016,确保每台服务器上都有相同的ID,使用man ssh-keygen生成该ID 的公钥,传到每 ...

  9. 解决升级Chrome浏览器之后出现跨域错误:Access to xxx has been blocked by CORS policy: XXXX

    一.错误产生的背景 Google Chrome浏览器升级 1.1 Google Chrome漏洞报告,要求升级 近日,Google Chrome官方发布Google Chrome远程代码执行漏洞(CV ...

  10. 基于Chrome浏览器插件实现SAE自动登录

    不知道各位大神在用sae开发项目是不是有这样的困扰,sae是没有记住密码功能的,每次系统都需要调用新浪登录的api来进行登录,ae这样做可能是出于安全考虑吧,其实对于我自己的pc机开发来讲,有个自动登 ...

最新文章

  1. vue2.0 通过ip访问自己运行的项目
  2. SLAM:SLAM之VSLAM的简介
  3. Spring MVC @ModelAttribute 详解
  4. 一维的Haar小波变换
  5. 【lua学习】7.环境
  6. 实验楼linux指令,Linux操作命令(二)
  7. js java cookie_js cookie 工具
  8. Linux安装yum(最全依赖包)
  9. 【No buffer space available】异常解决
  10. [走过的路]联想时光——人艰不拆(店员篇+推销员篇)
  11. signature=ac75cb7977a45c0f7d8a73dca59a4c27,合肥2016年8月24日至2016年9月5日交通违章查询...
  12. 多功能手持读数仪VH03如何连接手机蓝牙
  13. ospf 指定dr_OSPF协议 DR/BDR的选取规则
  14. 用这9个问题来审视自己
  15. Js 跳转页面和打开新窗口的方法
  16. 二分查找(序列是顺序的运用递归)
  17. 上海某大型游戏公司Unity3D基础面试题
  18. MySQL数据盘空间满了
  19. 离线安装cmake错误
  20. Android Instrumentation源码分析(附Activity启动流程)

热门文章

  1. SQLSERVER月份简写转数字
  2. 走出国门,在安防赛道海外本地化部署已成必然
  3. 计算机社团英语宣传海报,英语协会宣传海报
  4. 计算机广告制作介绍,计算机广告制作.ppt
  5. Carplay车载语音通讯测试(Vehicle Communication Terminals Test)
  6. 公司天天开会,是不是浪费生命呢?
  7. 服务器虚拟内存设置在什么盘,虚拟内存设置在哪个磁盘呢
  8. python 进行文本情感分析
  9. 文本数据挖掘-----词向量
  10. 世上有不用加班的程序员吗?