TCP 套接字是否安全还是我应该始终检查用户

Vin*_*rez 2 c++ sockets ssl tcp node.js

我有一个 C++ 应用程序,它通过 TCP 套接字连接到 nodeJS 服务器。在套接字“握手”上,客户端使用服务器已知的 UUID 对自身进行身份验证,然后服务器将帐户关联到此识别的 UUID

一旦 TCP 套接字打开,应用程序发送请求,服务器通过同一个套接字应答。

是否有必要为每个请求添加密码以确保请求来自客户端?或者插座应该就位并保持在原位?

所以我应该确定客户是客户:

  • 只有在打开插座时?
  • 每次提出请求?

小智 5

服务器已知的 UUID 通常称为令牌。它可以用于您的场景。然而,它不应该在未加密的情况下完成。您需要确保以下内容:

  • 外部方(不是通信的 2 个成员之一)应该无法读取令牌。
  • 客户端不应该连接到你的服务器以外的任何东西。

这通常是使用 TLS 完成的。(这就是使 HTTPS 安全的原因。)

我建议您对基于令牌的身份验证/授权和 TLS/SSL 进行一些研究。

最后一个建议:不要自己实现加密代码,而是使用一个使用良好的库,该库经过大量测试并具有良好的维护。