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 - 标头 - 查询字符串 - 安全的主要内容,如果未能解决你的问题,请参考以下文章
Node.js + Socket.io |在服务器上设置自定义标头
带有查询字符串参数的 AndroidAsync socket.io 连接
由于 CORS 错误,Socket.io 和 express 应用程序无法连接:“'Access-Control-Allow-Origin' 标头的值不能是通配符 '*'”