【问题标题】:Connecting socket.io client to different hosting将 socket.io 客户端连接到不同的主机
【发布时间】:2018-11-30 07:29:29
【问题描述】:

所以我的一个网站托管在 godaddy 上,现在我想将它与运行 socket.io 的服务器连接,并且我在 digitalocean 上有一些平衡。但是,我不确定我会怎么做,我认为客户端应该是这样的?

var socket = io.connect('http://Digital.ocean.ip.here:port');

然后像这样的服务器端

http.listen(port, function(){
  console.log('listening on *:port');
});

唯一的问题是,如果这是我应该做的事情(如果不是本地主机,甚至可能),那么用户在查看源代码,也许是 DDOS,或者更糟糕的是我不知道? 例如,当我看到其他网站使用 socket.io 进行聊天时,我从来没有看到他们的 IP。这是否意味着他们将整个网站托管在可以使用 socket.io/node.js 的服务提供商上? 任何答案将不胜感激!

--编辑--
我的客户不接受 http,因此我决定购买一个域和 ssl,以便它使用 https。

【问题讨论】:

  • 您始终可以看到您正在连接的服务器的 IP,因为如果不先发送 HTTP 握手请求,您就无法建立 WebSocket 连接,其中包括服务器的主机名(反过来可以解析为知识产权)。

标签: javascript websocket server socket.io hosting


【解决方案1】:

没有办法每次都隐藏浏览器连接的服务器的 IP 地址。与服务器的连接是 http 还是 socket.io 或任何其他基于 TCP 的连接都没有区别。任何人都可以看到 IP 地址。因此,这根本不是您可以保护或担心的事情。

在大多数情况下,代码将使用 DNS 主机名(不是 IP 地址),但 DNS 服务本身提供了一种在 IP 地址中查找主机名的方法,因此可以通过这种方式获取 IP 地址。或者,只需加载调试器或本地网络窥探器,即可轻松查看正在连接的 IP 地址。主机的 IP 地址根本不是秘密。

如果您担心 DDOS,那么您将不得不实施服务器端保护以免受这些类型的攻击。您无法在客户端中执行任何操作来防止此类攻击。

【讨论】:

    猜你喜欢
    • 2016-10-22
    • 2016-03-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    相关资源
    最近更新 更多