如何在 Node.js TCP 服务器框架中识别和验证不同的 TCP 客户端(具有动态 IP)



我有Node.js TCP服务器框架,它充当中央TCP服务器,连接到许多TCP客户端,这些客户端是收集和发送数据的传感器。这本质上是一种机器对机器的通信,TCP 客户端在其中建立连接并开始发送数据。服务器必须进行身份验证,然后处理数据。

我想做什么?--->通过标识每个客户端并确保它们位于数据库的用户列表中来对每个客户端进行身份验证。

  1. 我可以通过其 ip 和端口来识别每个传入的客户端。但是,每个客户端都有一个动态 IP。这意味着我不能依靠它与数据库中的列表进行比较。

  2. 我的目标是确保每个连接都是有效的,并且是我的用户数据库的一部分。我正在考虑实现一个"应用层",其中传感器(客户端)和TCP服务器都知道它们匹配的字符串。当客户端设置连接时,它会发送此字符串,服务器使用它与数据库中的列表进行比较。 这样,客户端每次建立连接时都会发出一个"关键字"。

如果这是一个可行的方法,我如何使用节点.js"NET"模块仅在建立连接时发出关键字?我没有看到任何这样的规定。

另外,有没有更好的方法来识别 M-M 连接中的客户端?任何指针都会有所帮助。

Node-RSA将为您做到这一点。

使用 socket.write 函数来发送数据。然后,如果另一个 Node 应用程序正在另一端侦听,您可以利用套接字数据事件来获取发送方写入的内容。如果您只希望某些机器连接到您的机器,如果它们的IP地址不是静态的,我确实建议您使用密钥。尽管请注意,这并不完全安全,因为人们可能会进行暴力攻击。使用作为散列字符串的密钥,可以最大限度地减少有人通过您猜到的密钥来猜测您的密钥的机会。字符串可以是任何东西,只要你们俩都有它。最好创建和共享相同的函数,该函数每隔一段时间更改一次字符串以提高安全性。请注意,这不如第一个选项安全,但它肯定仍然是一些东西。

最新更新