javascript - 是否可以强制 socket.io 使用 wss 而不是 ws,而不必更改为 https?

标签 javascript sockets security socket.io wss

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

最佳答案

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

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

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

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

关于javascript - 是否可以强制 socket.io 使用 wss 而不是 ws,而不必更改为 https?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41426495/

相关文章:

php - 如何在 PHP 中保护硬编码的登录名/密码?

javascript - 如何删除匹配的标签但保留 JQuery 的内容

javascript - 选择不使用 Angular 2 绑定(bind)动态更新的选项

c - 是否可以将结构转换为另一个结构?

r - 与 TCP 套接字(服务器)通信

javascript - 使用自定义路由而不是蓝图的 SailsJs websocket?

javascript - 如何告诉 IE 我磁盘上的 HTML 文件没有安全风险?

javascript - 带有 ReactJs 的 TinyMCE - onChange 事件只触发一次

javascript - Firebase 功能正在部署,但未显示在控制台中

java - 将证书添加到 java keystore ,仍然出错