【问题标题】:Is it possible to force socket.io to use wss instead of ws, without having to change to https?是否可以强制 socket.io 使用 wss 而不是 ws,而不必更改为 https?
【发布时间】:2017-01-02 12:03:28
【问题描述】:

我一直在尝试设置一个服务器,用户可以在其中使用 websockets 发送登录信息,但我不想使用 ws 执行此操作。我希望能够在没有 https 的情况下打开 wss。可悲的是,没有任何选择可以做到这一点。所以问题是如何在不使用 https 协议的情况下在客户端执行此操作。

【问题讨论】:

    标签: javascript sockets security socket.io wss


    【解决方案1】:

    是的,这是可能的。为此,请将您的 websocket URL 直接传递给 socket.io 客户端,如下所示:

    var socket = io('wss://example.com/');
    

    请注意,反过来是不可能的:虽然没有什么可以阻止 HTTP 页面创建 WSS 连接,但现在大多数浏览器都会阻止来自 HTTPS 页面的任何 WS 连接以增强安全性。

    我还要提醒的是,通过 WSS 打开的 websocket 仍然不比它源自的页面更安全。如果您将 WSS 用于其安全优势,请注意,如果攻击者在加载页面时覆盖了您的页面(HTTPS 会阻止),那么所有安全性都可能化为乌有。

    【讨论】:

    • 好的,现在我有一个问题,我不知道该给谁作为答案,您的两个答案听起来都不错,但是我对这个主题的了解不足限制了我做出正确的选择。
    • @KitangaNday 我建议接受 Margaret 的回答,因为她回答了实际适用于您的情况的内容:没有 SSL 证书就无法拥有 WSS。我的回答在技术上是正确的,但对你没用。
    【解决方案2】:

    来自Websocket protocol specification

    wss URI 标识 WebSocket 服务器和资源名称,以及 表示该连接上的流量将受到保护通过 TLS(包括 TLS 的标准优势,例如数据机密性 和完整性,以及端点身份验证)。

    强调我的

    现在你可以理解你的请求的荒谬了:wss is https
    当然,术语是错误的(https 是与 wss 不同的协议),但归根结底,两者都是各自 TCP 普通协议的版本(http 和 ws) 在TLS.

    所以答案是


    事实上,安全是一件复杂的事情。
    非常有经验的程序员不会发明或探索新方法,并且根据您提出的问题,您似乎没有太多该领域的专业知识。

    所以最好按照最佳实践所说的去做,他们说使用“https”使用“https”。

    建议开始认真研究安全性(或聘请承包商),而不是发明执行安全身份验证的新方法,除非您拥有抽象代数博士学位和多年开发密码方案的经验。

    【讨论】:

    • 不同意:虽然 https 和 wss 密切相关,需要一起使用才能获得安全优势,但理论上没有理由不能只使用其中一个,并且事实上,我刚刚遇到了一个有用的用例(调试可能由 wss 库引起的错误)。对于提问者的请求,我可以想象通过其他方式(即从本地主机提供服务)来保护 http 页面的场景。了解正在使用的加密算法很难,但了解您网站的哪些部分受到或未受到保护则非常简单。
    • @Brilliand 也许我们以不同的方式看待这个问题,因为这里没有解释的余地​​:wss is https。所以你必须设置整个 https 机器才能使用它。即使在您的回答中,您也在使用 https。 OP 谈论的是设置服务器,而不是混合内容
    • 嗯,这是一个合理的解释。但正如你所说,术语是错误的:httpswss 是独立的东西,它们都依赖于 SSL/TLS(这是困难的部分)。我假设他没有犯术语错误,但你可能是对的,他真正想要避免的是 SSL 证书。
    • @Brilliand 是的,就是这样,我只是想跳过 SSL 证书。我决定只切换到https。使用 Firebase Host,这是一项很棒的服务,他们提供免费的 SSL 证书。
    猜你喜欢
    • 1970-01-01
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    • 2013-09-09
    • 2014-08-12
    • 1970-01-01
    相关资源
    最近更新 更多