node.js - 保护 Socket.IO Websocket 并将其限制在域中

标签 node.js sockets https socket.io wss

所以我是 Socket.IO 的绝对初学者,但我有一个预构建的应用程序,需要通过两种方式来保护:它需要通过 HTTPS 传输,并且需要限制为仅将数据服务器到特定域。

这是迄今为止发射器的代码:https://github.com/Bitzz/Pokemon-Go-Coords/blob/master/discord-bot/index.js 我该如何保护它? 我假设类似于

io.set('origins', 'https://example.com:*');

第 156 行会将其限制为一个域... 我可以只将特定域列入黑名单吗? 除此之外,我如何让它通过 wss 通过 https 发出?

当前控制台显示: bye bye ws over https

我想我可以弄清楚如何配置网络侧阅读器来查找 https websocket,但让它发送并不是我知道如何弄清楚的。 请用简单的语言,我不是一个聪明的人。 :(

最佳答案

要将 Socket.IO 限制为多个域,我相信您只需要将每个域分隔一个空格即可。

io.set('origins', 'https://example.com:* https://anotherdomain.com:*');

关于 SSL 连接,有多种归档方法:

  1. 配置Socket.IO在NodeJS中使用ssl(wss://而不是ws://),这里有一个答案:node.js, socket.io with SSL
  2. 使用 Nginx 创建反向代理,这里有一个指南:https://www.exratione.com/2013/06/websockets-over-ssl-with-nodejs-and-nginx/
  3. 使用第三个服务的反向代理,例如 https://www.cloudflare.com

第三个选项最简单的存档方式。您只需将域名指向 CloudFlare 并配置一条记录到您的 ws 服务器,CloudFlare 将免费为 Websocket 提供 ssl,并自动对您的原始 Websocket 服务器进行 SSL 终止。

关于node.js - 保护 Socket.IO Websocket 并将其限制在域中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39420992/

相关文章:

Android SDK Manager 不会更新 : connection to https://dl-ssl. google.com denied

javascript - Node/child_process 抛出 E2BIG

javascript - Node JS 图像代理

java - 尝试套接字连接后地址已被使用

security - 根据页面实现 HTTP 或 HTTPS

python-2.7 - 如何在 python 2.7 中使用 ssl

node.js - 如何在 Node.js 中使用 http.request 限制响应长度

node.js - 错误: CERT_HAS_EXPIRED in Node. js请求模块(macu vs facebook)

java - 套接字编程: Inputstream Stuck in loop - read() always return 0

Java BlockingQueue 消息线程之间的滞后问题