项目中使用iframe嵌入了第三方系统页面,在chrome浏览器80版本后SameSite默认启用,导致嵌入的页面cookie被禁用,嵌入的页面Ajax请求无法携带cookie,导致请求失败。
解决思路:chrome只是禁止第三方的cookie,对于同源的请求是不禁用的,在这种情况下可以使用nginx进行第三方系统的请求代理,解决同源问题。
nginx示例配置如下:

 #代理的第三方请求地址
upstream iframe_srver{
    server 192.168.0.57:9010;
    keepalive 5000;
server {
    #本地服务(所属服务的服务器上)监听的端口及地址
    listen       9010;
    server_name  127.0.0.1;
    client_max_body_size 256M;
    #代理地址--第三方地址#
    location / {
    proxy_pass http://iframe_srver/;
    ##cookie所替换的路径
    proxy_cookie_path  /    /;
    ##这里必须携带端口,否则转发会丢失端口,如果是80,443则可以去除
    proxy_set_header   Host        $host:$server_port;
    proxy_set_header   Remote_Addr    $remote_addr;
    proxy_set_header   X-Real-IP    $remote_addr;
    proxy_set_header   X-Forwarded-For    $proxy_add_x_forwarded_for;

在访问服务器上部署nginx,代理第三方服务地址后,iframe正常显示内容。

chrome浏览器下使用iframe禁用cookie的问题项目中使用iframe嵌入了第三方系统页面,在chrome浏览器80版本后SameSite默认启用,导致嵌入的页面cookie被禁用,嵌入的页面Ajax请求无法携带cookie,导致请求失败。解决思路:chrome只是禁止第三方的cookie,对于同源的请求是不禁用的,在这种情况下可以使用nginx进行第三方系统的请求代理,解决同源问题。nginx示例配置如下: #代理的第三方请求地址upstream iframe_srver{ s
网站iframe内嵌第三方带登录页的网站时,在ie和火狐和部分谷歌浏览器是可以的,但是在升级版的谷歌浏览器中是无法访问的 问题是谷歌浏览器在Chrome80后提示限制第三方cookie问题 参考:https://zhuanlan.zhihu.com/p/107126906 JavaScript Optional chaining 和 Nullish coalescing 正式支持。 Favicon 图标支持 SVG 格式。 移除对 FTP 的支持。 Web workers 中支持 E
原因:A站点里有个iframe的src是b站点,服务器向b站点写入cookie成功,可是b站点发起请求到服务器(A站点的后台)时,由于B站点是在A站点的iframe里,而且跨域。Safari浏览器认为是第三方cookie,不会携带到请求里。 解决方案: p3p就先不说了,不配p3p其他浏览器也会有问题 response.setHeader("P3P", "CP=CAO PSA OUR");
一、问题描述   最近修复一个日常开发很少遇到也很少会关注的问题,具体问题是在项目中接入了公司前端同事开发的H5页面,这个H5页面内部接入了第三方的页面(后面通过分析是以iframe方式嵌入H5页面的),从公司内部H5页面跳转到第三方页面时有些机型cookie获取不到。具体现象如下图:   问题分析:当H5页面中使用iframe内嵌一个页面时,由于内嵌页面和外部页面域名不同,导致cookie存在...
A网站(假设为http://SameSite.a.com)作为iframe内嵌在B网站(假设为http://test.a.com)。在B网站中加载A网站的时候,自动登录失效,导致接口一直重调。 问题定位 初步分析,A网站为第三方页面,将A网站直接在外部打开可以单独访问,排除A网站的问题 更换浏览器,在火狐和Edge中,A网站可正常在iframe中加载。初步定位为浏览器兼容问题 对比不能正常加载和正常加载的chrome浏览器版本,都更新到最新的89版本。发现状态没变.
192.168.40.26服务器上有一个项目,某个页面嵌入了第三方系统平台, 第三方系统平台服务器地址是:192.168.40.67 页面嵌入成功,只能访问到登录页,登陆成功但是页面不进行跳转。 如果单独登录第三方平台,如下图: 嵌入第三方后页面 ,如下图: 提示正常登陆成功,却没有跳转页面。页面晃动一下,但还是停留在登陆页面上。 判断是因为跨域问题,嵌入页面时使用192.168.40.26IP地址访问第三方192.168.40.67登录接口时登陆成功,但是前端页面也在这个192.168.
Google Chrome浏览器下载,谷歌浏览器(Google Chrome)是谷歌公司开发的一款免费的网络浏览器。它拥有简洁的界面,机智的地址栏,强大的浏览选项和web应用扩展。Chrome 浏览器的目标是让上网变简单、快速和安全。 主要特性: • 速度极快:Chrome浏览器采用了极简主义的设计理念,页面加载速度很快,很好地兼顾了页面显示速度和系统资源占用。 • 安全稳定:Chrome浏览器内置了安全沙箱机制,避免恶意软件对用户系统的攻击,保证上网安全。并且定期自动更新,修复安全漏洞。 • 界面简洁:Chrome浏览器界面简单实用,主页干净利落,地址栏和搜索栏完美结合,提供更加直观的上网体验。 • 强大扩展:Chrome浏览器支持各种web应用扩展,用户可以根据个人需要自由安装与卸载,比如广告拦截,网页翻译等功能。 • 跨平台支持: Chrome浏览器支持Windows、Mac、Android、iOS多个平台,PC端和移动端同步数据与设置,使上网体验无缝切换。 • 数据同步:Chrome浏览器通过与Google账号绑定,实现上网浏览数据跨设备自动同步,不论在手机还是电脑上浏
谷歌8.0新版iframe嵌套跨域请求cookie丢失问题。 浏览器的Cookie新增加了一个SameSite属性,用来防止CSRF攻击和用户追踪。该设置80版本默认是关闭的,但在Chrome 80之后,该功能默认已开启。 不再支持iframe 携带cookie 访问第三方站点
新版chrome(80+)浏览器默认屏蔽所有三方cookie已经不是什么新闻了,具体原因这里不去深究,有大量相关文章介绍,由于目前许多网站都依赖三方cookie,因此该特性的推出还是造成了一些的影响,比如收集用户信息的广告商,而且主流的浏览器都跟进chrome的策略,已经成为了既定事实,本篇文章主要聚焦于各种解决方案,大家可以针对自身情况采用不同的解决办法。 SameSite cookie新增的属性,取值包括:Lax(默认),None,Strict 1.None:将关闭SameS.
问题如图所示:红色框的域名为框架的主要域名,黄色框是页面内嵌入的两个iframe的域名。红色域名登录以后cookie信息无法写入黄色域名下面,导致黄色域名下面的接口请求失败。 原因:Chrome 某个版本开始,浏览器的 Cookie 新增加了一个SameSite属性,用来防止 CSRF 攻击和用户追踪。并将未声明 SameSite 值的 Cookie 默认设置为SameSite=Lax Cookie。 (关于SameSite详情开参考阮一峰文章:http://www.ruanyifeng.com/blog
macOS系统: open /Applications/Google\ Chrome.app --args --disable-web-security --user-data-dir="/Users/$USER/chrome-dev-session" 请注意,禁用同源策略可能会导致安全风险,请谨慎使用