Socket.io - 标头 - 查询字符串 - 安全

Posted

技术标签:

【中文标题】Socket.io - 标头 - 查询字符串 - 安全【英文标题】:Socket.io - Headers - Query String - Security 【发布时间】:2019-07-22 13:43:32 【问题描述】:

我想在这里介绍几个方面。让我们展开。

我在我的一个应用程序中使用了 Socket.io。在尝试将 JWT 用于普通应用程序和 socket.io 客户端时,我有这些想法。

    Socket.io 使用 HTTP(S) 协议和 GET 方法,正如我发现的那样 远的。还是它也支持POST?如果是这样,怎么做?如果不是,为什么? 虽然许多帖子声称使用查询参数来传递 JWT,这在 HTTPS 上不会“那么糟糕”,但鉴于大量浏览器扩展通常会读取 URL,我有弹性这样做。所以我更倾向于使用标题。顺便说一句,这也是他们指定的工作。还是我被少量信息误导了? 标题将我们带到下一个问题,标题和查询字符串如何通过网络传输?一个比另一个更安全吗?在途中,标题对世界的可见度是否降低了? 哦!以及如何在 Socket.io client 中设置标头?

我们将不胜感激,谢谢!

附:如有必要,请更正帖子标题。

【问题讨论】:

【参考方案1】:

1) socket.io 顾名思义使用 websockets,所以它实际上应该使用 wss 协议,使用轮询和 https 只是一个后备 afaik。

2) 浏览器扩展也可能读取标题?我看不出两者相比有什么优势。

3) 作为 1 和 0?然而,两者都是加密的(因为 https 和 wss)。

4) 你为什么想要那个?如果你想使用socket.io,只需.emit() 事件,这就是socket.io 的全部意义所在。如果您不想要 websockets 而需要一些自建的解决方案,请创建自己的解决方案。

【讨论】:

以上是关于Socket.io - 标头 - 查询字符串 - 安全的主要内容,如果未能解决你的问题,请参考以下文章

Socket.io 未设置 CORS 标头

Node.js + Socket.io |在服务器上设置自定义标头

Socket.io - 标题 - 查询字符串 - 安全性

带有查询字符串参数的 AndroidAsync socket.io 连接

由于 CORS 错误,Socket.io 和 express 应用程序无法连接:“'Access-Control-Allow-Origin' 标头的值不能是通配符 '*'”

带有 OAuth access_token 的 socket.io-client io.connect 查询字符串