使用 socket.io 进行服务器端验证

mrz*_*myr 5 javascript server-side websocket node.js socket.io

我只想使用 nodejs 和 socket.io 服务器端验证一些数据。

所以我发送数据socket.emit('validate data', data)

我的方法是通过像这样发送响应服务器端来做到这一点......

socket.emit('validated data', boolean })

..并像这样在客户端返回此响应...

socket.on('validated data', function (boolean) {
    validationResponse = boolean;
});
Run Code Online (Sandbox Code Playgroud)

对于布尔值来说,这似乎非常尴尬且低效。我认为这是关于服务器-客户端与套接字通信的一个非常普遍的问题,因此解释会非常有帮助。

是否有更好的解决方案来获得布尔值或微小信息的直接响应?

mrz*_*myr 0

我的问题是为了更短或更安全的代码,但我如何怀疑:

我认为这是关于服务器-客户端通信的一个非常普遍的问题

..我这边的沟通思考是否有错误。问题是,如果您尝试使用这样的流程来保护应用程序,安全性并不会更好,因为您的客户端可能已经在客户端伪造了返回的布尔值本身。

所以最后我还是更喜欢检查它,但是如果用户发送一条带有无效/已被占用的用户名的消息,该消息将不会发送到其他客户端,并且客户端本身会收到一条类似username already taken.

朋友们,抱歉并感谢您的回答。特别感谢@ThiefMaster