【问题标题】:Prevent other people from emitting socket info防止其他人发出套接字信息
【发布时间】:2014-09-10 13:45:21
【问题描述】:

我的节点套接字服务器与我的网站在同一个 VPS 上运行。有没有办法阻止其他“网站”或其他节点项目连接到我的套接字服务器并发出数据?

我的网站和节点项目有相同的IP地址。

例如:(客户端html)

<script>
  var socket = io.connect('localhost') //localhost as an example
  socket.on('example', function(data) { 
     console.log(data) ;
  });
  socket.emit('sendToServer', 'hello world');
</script>

我希望这里的代码只能由我的网站(或 IP)使用

编辑:如果在 socket.io 中没有这样做,有没有办法可以验证我的套接字服务器以使其只有我的 IP 才能发出东西

【问题讨论】:

标签: javascript html node.js sockets socket.io


【解决方案1】:

如果您对此感到担忧,则应考虑只允许经过身份验证的用户。否则试图禁止显式 IP 地址并维护该列表是不可行的。

【讨论】:

  • 我使用 socket.io 在我的网站上显示警报。因此,随机用户可以轻松连接到我的套接字服务器并向我的站点发送警报。
  • 如果您正在显示警报,难道只有服务器可以控制它吗?为什么要盲目地接受来自客户端的警报并将这些警报/消息广播给所有人?
  • 我的警报需要实时显示,所以我使用套接字来显示这些警报。我是说我不想盲目地接受警报,这就是我尝试对其进行身份验证的原因。每个人都可以连接到我的套接字服务器,这是我试图阻止的。
  • 是的,人们可以连接到套接字服务器,但是,除非您对他们进行身份验证,否则您不必接受他们的输入。查看 socket.io-handshake NPM 模块。它将帮助您将 express / socket.io 会话连接在一起并提供您需要的安全层。
猜你喜欢
  • 1970-01-01
  • 2012-01-14
  • 1970-01-01
  • 2016-05-16
  • 2012-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多