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 SameSite must be secure开启,只能用command-line flag,即启动Choromium时所带的参数来强行关闭那两项
解决方案:
-
在右击Chrome/Edge的快捷方式, 点击"属性".
-
在"目标(Target)"属性中末尾加上

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

被折叠的 条评论
为什么被折叠?



