首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Safari 11 XSRF刷新后未更新令牌

Safari 11 XSRF刷新后未更新令牌
EN

Stack Overflow用户
提问于 2017-10-02 12:01:07
回答 1查看 1.3K关注 0票数 8

最近,Safari 11在Mac上发布。此更新会导致我们的the应用程序与XSRF结合在我们的reuest头上的问题。我将尝试用逻辑的方法来描述这个问题。好的情况是这样的:

  1. 当用户想要登录时,他会收到来自服务器的响应,其中包含XSRF令牌的值。Eg: Set-Cookie: XSRF-TOKEN=LKNBX4DZhL708KjXNkgXnlxTDCNuhsZG1kTc2SFy498; Path=/; Secure
  2. 页面刷新将执行的下一个调用,其中包含标题中正确的XSRF值。在服务器端,将检查值等。来自前端的每个调用都将包含该XSRF令牌。
  3. 如果用户注销并希望再次登录,他的XSRF将被一个新值覆盖,并能够使用该令牌登录。

我们有问题的情况(在Mac上使用Safari 11,其他浏览器没有显示这种行为):

  1. 如果不存在cookie,则用户可以正常登录。
  2. 但是,如果他想重新登录(在上一次会话之后),刷新就会发生。在第一次调用时,刷新他调用的XSRF-令牌没有被新值替换,它们仍然包含上一次会话中的旧XSRF-令牌。当我们检查这个请求时,我们会发现这个请求上的cookie包含正确的值,但是标头反映了旧的令牌。
  3. 这个具有错误标题的调用会导致后端中的会话关闭,因此用户将被踢出会话。TLDR;在Safari 11中,报头XSRF在刷新后不会相应地更新cookie值。我们已经在旧版本和其他浏览器上进行了这种工作,我们认为这是一个Safar 11错误。

还有其他人遇到过类似的问题吗?在Safari 11中的页面刷新之后,没有更新请求的头值?

编辑:经过测试,我们发现在URL中放置一个时间戳作为查询参数迫使Safari 11发送正确的请求。似乎有些请求被缓存,更新的标头被忽略..

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2017-10-25 19:19:03

我不能真正评论您的令牌问题,但我也怀疑Safari 11在缓存方面存在问题。最近,即使对于指定

代码语言:javascript
运行
复制
Cache-Control: no-cache, private

Safari在从本地主机重新加载页面2次后开始缓存这些请求(如Cache (Disk))。firefox和chrome都不做一些。在我看来是个虫子?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46525065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档