孔子学院项目中遇到的难点及解决方案

在孔子学院项目中遇到了浏览器cookies携带问题,主要表现为Chrome上的跨域问题,而Firefox正常。问题源于Chrome的SameSite策略。解决方案包括修改浏览器设置或通过命令行参数。此外,还解决了使用useEffect时导致的搜索模块点击下一页无反应的问题,原因是useEffect的依赖数组未正确设置。
摘要由CSDN通过智能技术生成

1. 浏览器cookies携带问题

问题:在后端设置allow-origin后 chrome上独有的跨域问题(firefox上不存在)

原因:
Chrome 51 开始,浏览器的 Cookie 新增加了一个SameSite属性,用来防止 CSRF 攻击和用户追踪。SameSite可以设置三个值:Strict、Lax、None
Strict最为严格,完全禁止第三方 Cookie,跨站点时,任何情况下都不会发送 Cookie。

Lax规则稍稍放宽,分情况处理,具体如下

chrome自版本80之前,SameSite默认是None,80之后默认是Lax,出现了所谓同站策略问题。

即,在A页面请求B页面,如果chrome发现它们不是同一个站点的话,就不传cookie给B页面所在的服务器。众所周知,原本cookie是会附在浏览器到服务器的每个请求(request)里的,80之后chrome区分情况,不一定允许这么干了。(FIreFox就没这个问题)

到此为止其实只要在chrome://flags里修改 SameSite by default cookies和Cookies without SameSite must be secure为disabled就行了
更新91版本后好了,直接默认SameSite by default cookies和Cookies without SameSi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值