这个问题已经有人回答过几次了,但我有一个非常具体的问题。
我目前正在制作一款游戏,其中HTML5程序与服务器端的c++程序进行对话。游戏也包含有价值价格的比赛,因此客户端和服务器之间的低延迟以及安全性应该是高优先级的。
这导致了我的问题:它是否足够安全的身份验证一个websocket会话(TLS加密)一次,当它启动或我应该发送SESSIONID与每条消息从客户端发送到服务器?
这个问题是非常基于意见的,并不适用于StackOverflow问题的性质。
以下是我的观点:
WebSockets协议是在基于连接的TCP网络层协议之上实现的。因此,这意味着连接被建立并保持,直到它被客户端或服务器关闭。两者之间的拦截是不可能的。
TCP连接建立后,WebSockets将从客户端发送HTTP报头,就像任何其他HTTP请求一样,但不会关闭连接,并等待服务器的响应,这是如果一切"正常"报头,用于批准HTTP协议升级到WebSockets通信。从那时起,WebSockets就可以有效地用于客户端和服务器端进行通信。因为TCP连接,所以它是持久连接。因此,为每个请求发送会话是没有意义的,因为它是在连接建立后发送的。
所以,不,在每条消息上发送会话详细信息是没有意义的,这不是一个好主意。您最好确保恢复您的会话是安全的过程,并且仅获取客户端的cookie -将不允许作为另一个用户连接。