在HTTP上使用套接字IO是可能的安全日志



我已经使用套接字IO在nodejs中构建了游戏服务器。

我打算从身份验证过程中删除Express和Cookie,而是使用WebStorage和一个尝试在套接字IO握手期间登录的客户端。

但是,我正在使用HTTP并在ClearText中发送用户ID和密码。拜托,请怜悯我!我相信,在整个插座连接中使用HTTPS将增加一个巨大的开销,因为更新每100ms发送一次。我目前的解决方案已用于开发,但我确定它是不安全的。

我应该提到我从未设置过/使用过HTTPS,所以如果我对开销有错,请纠正我,我知道这是一个非常有争议的话题。理想的解决方案似乎是通过HTTPS连接对用户进行身份验证,然后通过HTTP传输游戏状态,但我不知道该如何实现。

最后,我有2个选项用于记录用户。我可以允许服务器上的套接字IO连接,并仅发射客户端的凭据。如果它们不正确,请断开它们。但是,清洁解决方案是将用户ID和PW发送到HTTP标头中的握手,然后从socket.io中间件中对用户进行身份验证,但是我不确定是否这样发送数据是安全的。/p>

我认为这不是一个小众问题,因此不存在标准练习,但是可能只是使用HTTPS。我相信,由于客户端和服务器之间仍然可以窥探数据,因此对用户凭据进行加密没有任何优势。关于我如何实现这一目标的任何信息,都值得赞赏,或者只是将我指向正确的方向:)

使用一个https连接进行登录身份验证,并在用户名/密码有效的情况下以唯一的安全令牌回复客户。

在客户端和服务器之间的对话框中使用普通的HTTP连接。如果客户端请求需要验证的内容,则将安全令牌包括在对话框中。如果您觉得很方便,您的客户可以将安全令牌存储在cookie中,因为该令牌只能用于一个会话。

客户清除会话令牌一旦客户登录,或者令牌已在一段时间内闲置之后。

这对于中安全应用是便宜且有效的。该方案的变化被用于许多应用程序。它不是万无一失的 - 数据包嗅探器可能能够在运输中抓住安全令牌。

如果安全令牌是从客户端IP地址和服务器时间戳的哈希构建的,则服务器在每条消息中都很容易验证令牌,并且第三方很难劫持会话。<<<<<<<<<<<<<<<<<<<<<<

相关内容

  • 没有找到相关文章

最新更新