解决较新版Chrome浏览器跨越的问题

本文介绍了Google Chrome 80起默认屏蔽第三方Cookie的背景,如何调整设置以解决SameSite问题,以及针对Chrome 91版本更新后的应对策略。还涵盖了跨域、cookie概念和安全措施,以及使用token替代cookie的方法。
摘要由CSDN通过智能技术生成

Google 在2020年2月4号发布的 Chrome 80 版本中默认屏蔽所有第三方 Cookie,即默认为所有 Cookie 加上
SameSite=Lax 属性,并且拒绝非Secure的Cookie设为 SameSite=None。
SameSite的作用就是防止跨域传送cookie,从而防止 CSRF 攻击和用户追踪,此举是为了从源头屏蔽 CSRF 漏洞。

操作步骤
1.打开浏览器的设置->隐私设置与安全->Cookie 及其他网站数据->允许允许所有cookie
2.在浏览器里面输入:chrome://flags/ 搜索SameSite 然后设置SameSite by default cookies 为disabled
在这里插入图片描述然后relauch一下就可以解决此问题。

注意
但笔者发现最新版的Chrome(91)版并没有SameSite by default cookies选项似乎是另外一种叫法,并且不能解决此问题,所以附上较老版本的浏览器
地址:chrome90
提取码:ktnz

上面降级的做法可以放弃了,最新解决方案(更新于:2021-9-9)
1.找到Google右键点击属性。
2.在目标添加一下带码:--flag-switches-begin --disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure --flag-switches-end确定重启即可。
在这里插入图片描述

扩展

  • 1.跨域:是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制。同源策略(域名、协议、端口均为相同)限制了以下行为:Cookie、LocalStorage 和 IndexDB 无法读取,DOM 和 JS 对象无法获取,Ajax请求发送不出去。
  • 2.cookie:cookie一般由服务端生成然后返回给客户端保存
<body>
    <%
    	//实例化一个Cookie
    	Cookie cookie1 = new Cookie("account","smith");
    	Cookie cookie2 = new Cookie("password","123456");
    	//设置Cookie的生命期限10分钟
    	cookie1.setMaxAge(600);
    	//添加Cookie到客户端
    	response.addCookie(cookie1);
    	response.addCookie(cookie2);
     %>
     Cookie成功写到客户端
</body>
  • 3.客户端发送请求带上cookie

ajax设置 :

xhrFields: {
            withCredentials: true
        },

axios设置:
axios设置
末尾
1.解决跨越问题=巧妙的避免浏览器的同源策略(参考:跨越解决方案
2.使用token代替cookie进行身份验证(参考:cookie,token验证的区别

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值