【问题标题】:socket.io sets cross-site cookie without same-site attributesocket.io 设置没有同站点属性的跨站点 cookie
【发布时间】:2020-02-21 18:29:14
【问题描述】:

我有一个 socket.io 应用程序,最近我收到了这个警告:

设置了与 URL 处的跨站点资源关联的 cookie 没有SameSite 属性。 未来版本的 Chrome 将仅通过设置为 SameSite=NoneSecure 的跨站点请求传递 cookie。

您可以在开发者工具中查看 cookie 应用程序>存储>Cookies 并在以下位置查看更多详细信息 https://www.chromestatus.com/feature/5088147346030592https://www.chromestatus.com/feature/5633521622188032.`

显然这是 Chrome 将来会更新的内容: SameSite warning Chrome 77

我已经尝试过this,但没有明显效果:io = io.listen(server, { cookie: false });

我认为cookie没有做任何事情,那么我怎样才能禁用io设置它呢?

【问题讨论】:

  • 对我来说有些问题。你解决了吗?
  • 不,因为计划在 2020 年第二季度的某个地方进行更新,所以自从我在这里发帖以来,我没有考虑太多。

标签: npm socket.io


【解决方案1】:

根据 Socket IOs 的 github 存储库中报告的问题,该 cookie 不用于任何用途;您可以通过在服务器选项中设置cookie: false 来禁用它。

但是您错过的是在初始化套接字时设置{cookie: false} 选项,而不是http.listen。下面提供的解决方案适用于使用 express 作为服务器的我。

var server = require('http').createServer(express());
var io = require('socket.io')(server, { path:"/some/path", cookie: false });

【讨论】:

  • 这不是真的。当多个并行 socket.io 服务器可用时,cookie 有时用于提供 ELB(例如 haproxy)粘性。
猜你喜欢
  • 2020-03-08
  • 1970-01-01
  • 2020-02-05
  • 2020-02-07
  • 1970-01-01
  • 2020-05-08
  • 1970-01-01
  • 2011-07-31
相关资源
最近更新 更多