View a markdown version of this page

GAMESEC03-BP03使用游戏后端服务验证玩家加入多人游戏的请求 - 游戏行业镜头

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

GAMESEC03-BP03使用游戏后端服务验证玩家加入多人游戏的请求

通常,在多人游戏中,玩家将通过直接从可用会话列表中选择一个选项来加入游戏会话,或者他们将提交寻找匹配项的请求。后一种方法要求游戏开发者负责找到符合条件的游戏会话并将连接信息(通常是 IP 地址和端口号)返回给玩家的游戏客户端。实现方式可能因您正在开发的游戏类型而异,但无论如何,对玩家加入游戏的请求进行服务器端验证是一种安全最佳实践。

在未建立这种最佳实践的情况下暴露的风险等级:中

实施指导

例如,在基于会话的多人游戏中,在授权玩家与服务器的连接之前,游戏服务器软件应使用游戏后端配对服务对玩家提出的加入游戏会话的请求进行验证。当玩家请求加入游戏会话时,游戏服务器应检查请求中是否有唯一标识符,例如玩家会话ID和服务器生成的票证,这些票证先前由游戏后端配对服务提供给游戏客户端。

启动与游戏服务器的连接后,您的服务器端软件可以使用此信息向配对服务验证玩家的连接请求是否有效,并验证玩家是否加入了先前在游戏会话中为其他玩家保留的席位。 

对于在亚马逊上托管的游戏 GameLift,请参阅游戏与亚马逊 GameLift 服务器的 client/server 交互,以了解如何实现此类服务器端验证的示例。

客户示例

在 AnyCompany Games最初的测试版发布期间,他们发现玩家通过直接连接到游戏服务器来绕过配对系统,从而导致严重的竞争诚信问题。当排名靠前的玩家发现他们可以与朋友共享服务器IP地址时,他们开始绕过基于技能的配对系统,导致经验丰富的玩家加入新手比赛,为新手创造了令人沮丧的体验。 AnyCompany 游戏通过实施服务器端验证系统来做出回应,该系统为每个配对请求生成唯一的会话门票。该系统需要玩家身份证和配对请求票以及经过验证的后端配对服务的连接尝试。

实施步骤

  • 使用玩家会话 ID 和服务器生成的票证等唯一标识符在服务器端验证玩家加入请求。

  • 确认与配对服务的连接请求的有效性,以阻止未经授权的访问。

  • 确认在验证过程中,未经授权的玩家未访问游戏会话中的保留位置。