Socket.IO客户端安全性

我是Node.js和Socket.IO的新手。 根据文档 ,客户端代码是这样的:

<script src="/socket.io/socket.io.js"></script> <script> var socket = io('http://localhost:3000'); socket.on('news', function (data) { console.log(data); socket.emit('my other event', { my: 'data' }); }); </script> 

虽然这对于本地testing来说是非常好的,但我不确定在活动页面上是否真的安全,因为它为服务器提供了直接的URL和事件信息。

我应该改变客户端到别的地方(或者以某种方式隐藏它?)为活页面或它是好的方式?

是的,这确实是危险的,没有保证!

但是,为了提高Socket.io的安全性,您可以做些什么

  1. 使用HTTPS连接,这将防止任何人窃听你的套接字连接
  2. 在与您的客户端build立套接字连接之前,请始终validation您的用户

下面的链接是一个很好的例子,您可以使用JSON Web Tokenvalidation您的Socket.io连接

https://auth0.com/blog/2014/01/15/auth-with-socket-io/

如果您使用基于会话的身份validation,则可以实现类似的体系结构

你也可以做混淆,你可以使用这些minify让你的代码丑陋和难以让攻击者追踪它,但是如果你在build立连接之前已经实现了authentication,它应该是足够安全的暴露你的url!