我制作了一个游戏,其中用户为了获得身份(登录屏幕),向服务器创建一个 socket.writeUTF(username,password);
并取回 token ,它已签名并包含用户 ID。
使用此 token ,每个用户都可以向服务器发出请求,例如移动、跳跃...
但我的问题是:如果我创建一个到服务器的新连接(我正在使用套接字)并且我如上所述使用用户 token 来保护该连接,我是否仍然需要在每个套接字上发送和验证 token 互动?
黑客可以通过某种方法使用其他用户的套接字向服务器发送查询吗?也许向端口“123456”中的套接字发送“跳转”请求?
否则,一旦建立连接,服务器上的套接字仅监听一个确切的 IP,并且无法从其他电脑使用该套接字,因此无需发送 token 并验证它?
如果有人知道这是如何工作的,我可能不会验证每一次交互。
最佳答案
除非您使用安全套接字,即 SSLSockets
,否则您的连接并不安全。有大量的攻击媒介是通过不安全的连接开放的,是的,您甚至可以将数据包欺骗到服务器,假装它们来自用户。
因此,最简单的选择是忘记您的 token 并切换到 SSLSocket
。请记住,安全是很困难的。除非您对信息安全有很好的了解,否则您自己制作的任何东西都将是不安全的。
关于java - 安全性:如果我在建立连接时已经对连接进行了标记,那么有必要在 .writeUTF() 中使用 JWT 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49497464/