Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想创建一个实时多人游戏,我想知道我应该如何保护和识别每个用户。例如,假设我有一张地图,里面有 5 个玩家,每个玩家每 1/60 秒通过 udp 将他的位置发送到服务器。消息应该是什么样子?也许从客户端到服务器的 udp 消息可能是:
repos player玩家 id到x , y
但是随后有人可以使用他想要的任何玩家 ID 向我的服务器发送数十亿条消息,并基本上管理每个用户的位置。任何想法应该如何解决?
您正确地注意到,欺骗是这里的主要威胁。
解决此问题的一种方法是要求玩家先登录。成功登录后,给他们一个令牌或临时密钥,然后使用此密钥检查每条消息的有效性。
为了检查有效性,您可以使用其中一种数字签名方案对消息进行签名,也可以简单地将秘密临时令牌与消息一起包含。
您可以通过每隔几分钟更换此密钥来进一步改进此方案。这将需要一个单独的消息类型,它也必须使用现有的临时密钥进行身份验证。