我想要创建一个实时的多人游戏,我想知道我应该如何保护和识别每个用户。例如,假设我有一个包含5个玩家的地图,每个玩家每隔1/60秒通过udp发送一次他的位置到服务器。信息应该是什么样子的?也许从客户端到服务器的udp消息可以是:
回复玩家id到x,y
但是有人可以用他想要的任何玩家ID向我的服务器发送数十亿条消息,基本上可以管理每个用户的位置。有什么办法解决这个问题吗?
发布于 2013-05-13 07:33:58
你应该注意到欺骗是这里的主要威胁。
解决这一问题的一种方法是要求玩家首先注册。在成功登录时,给他们一个令牌或临时密钥,然后使用这个密钥检查每条消息的有效性。
为了检查有效性,您可以使用数字签名方案之一对消息进行签名,或者只需将秘密临时令牌与消息一起包含在内。
您可以通过每隔几分钟替换此密钥来进一步改进此方案。这将需要一个单独的消息类型,它还必须使用现有的临时密钥进行身份验证。
https://stackoverflow.com/questions/16513137
复制相似问题