美文网首页程序员
关于Chrome80版本后SameSite=Lax导致跨域请求s

关于Chrome80版本后SameSite=Lax导致跨域请求s

作者: CodeShrimp | 来源:发表于2020-03-14 19:02 被阅读0次

    起因是博主在登录后台的时候,一直提示验证码错误。进debug调试了一下,发现验证码正常生成,但是在校验的时候取出来的值却是NULL。于是把每次请求的sessionID打印出来,发现了很匪夷所思的一幕。

    每次请求sessionID都不同!

    控制台打印sessionId

    这种情况基本可以确定是请求的时候没有把session带上,然后浏览器又重新给你分配了一个session,导致每次请求session都不一样。

    但是为什么之前一直都好好的,现在突然就冒出这个问题?首先,我的chrome肯定是启用了cookie,并且重置设置和清除了缓存,却还是不能解决问题。于是便在同样的条件下,用Firefox浏览器试了下,却又恢复正常了。没错,罪魁祸首就是chrome浏览器了!

    上度娘搜了一下,看到了这篇文章https://blog.csdn.net/qq_37788558/article/details/104484888

    再经过一顿摸索,找到了一种解决方法。直接上图(别问我为什么不换浏览器,谷歌,永远滴神)

    在chrome中设置samesite

    samesite有三个值

    Strict

    Lax

    None

    Strict是最高级的,之前一直默认是None。而Chrome80版本后将samesite默认设置成了Lax,可以看到有些请求将无法携带cookie,这可能就是导致session丢失的原因。

    Lax

    chrome也经常会发出这样的警告

    chrome警告

    这时候只要将Same-Site改回none就可以了。博主上面的做法是在chrome浏览器直接禁用samesite。

    禁用 samesite 前

    禁用samesite后session就带过去了,浏览器也不会一直生成新的session。

    禁用 samesite 后

    以上是本人的个人见解,有不对的地方欢迎指正。

    另外附上几篇参考文章:https://blog.csdn.net/wanghongbiao1993/article/details/104795084

    https://blog.csdn.net/qq_37060233/article/details/86595102

    相关文章

      网友评论

        本文标题:关于Chrome80版本后SameSite=Lax导致跨域请求s

        本文链接:https://www.haomeiwen.com/subject/qpjgshtx.html