security - 如何进行最安全的Websocket认证

标签 security session authentication websocket

我已经多次看到这个问题的回答,但我有一个非常具体的问题。

我目前正在制作一款游戏,其中 HTML5 程序正在与服务器端的 C++ 程序进行对话。该游戏还包括有值(value)的比赛,因此客户端和服务器之间的低延迟以及安全性应该是重中之重。

这引出了我的问题:在 Websocket session (TLS 加密)启动时进行一次身份验证是否足够安全,或者我应该在从客户端发送到服务器的每条消息中发送 SESSIONID?

最佳答案

这个问题非常基于意见,不适用于 StackOverflow 问题的性质。

这是我的观点:

WebSockets 协议(protocol)是在基于连接的 TCP 网络层协议(protocol)之上实现的。这意味着连接已建立,然后持续存在,直到客户端或服务器关闭为止。两者之间的拦截是不太可能的。

建立 TCP 连接后,WebSockets 将从客户端发送 HTTP header ,就像任何其他 HTTP 请求一样,但不会关闭连接,并等待服务器的响应,这就是如果一切“良好” header 用于批准 HTTP 协议(protocol)升级到WebSockets通信。从那时起,WebSockets 就可以在客户端和服务器端用于通信。由于TCP连接是持久连接。因此,为每个请求发送 session 是没有意义的,因为一旦建立连接就会发送 session 。

所以不,在每条消息上发送 session 详细信息并不是一个好主意,因为这样毫无意义。您最好确保恢复 session 是安全的过程,并且仅获取客户端的 cookie - 将不允许以其他用户身份进行连接。

关于security - 如何进行最安全的Websocket认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22307344/

相关文章:

web-services - 调用安全 Web 服务 (HTTPS) 是否需要更多设置?

wcf - OData 身份验证

php - 用户不活动注销 PHP

javascript - 如何在 jQuery dataTables 中获取可变 session ?

javascript - 如何存储用户数据以启用对我的 Angular 应用程序的自动签名?

java - Android - 获取需要登录的页面的源代码

java - Keytool.exe 和 jarsigner.exe 问题

javascript - 从客户端到服务器上的真实路径的虚拟路径

java - 使用 Java 8 自签名证书

php - $_SESSION ['login_user' ] 不工作