View a markdown version of this page

GAMESEC03-BP03Use o serviço de back-end do jogo para validar as solicitações dos jogadores para entrar em um jogo multijogador - Lentes da indústria de jogos

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

GAMESEC03-BP03Use o serviço de back-end do jogo para validar as solicitações dos jogadores para entrar em um jogo multijogador

Normalmente, em jogos multijogador, um jogador entrará em uma sessão de jogo selecionando uma opção diretamente de uma lista de sessões disponíveis, ou enviará uma solicitação para encontrar uma partida. A última abordagem atribui ao desenvolvedor do jogo a responsabilidade de localizar uma sessão de jogo qualificada e fornecer as informações de conexão (geralmente um endereço IP e um número de porta) de volta ao cliente do jogo do jogador. A implementação pode variar dependendo do gênero de jogo que você está desenvolvendo, mas, independentemente disso, é uma prática recomendada de segurança realizar a validação do lado do servidor da solicitação de um jogador para entrar em um jogo.

Nível de risco exposto se esta prática recomendada não for estabelecida: Médio

Orientação para implementação

Por exemplo, em um jogo multijogador baseado em sessão, uma solicitação de um jogador para entrar em uma sessão de jogo deve ser validada pelo software do servidor do jogo com o serviço de matchmaking de back-end do jogo antes de autorizar sua conexão com o servidor. Quando um jogador solicita entrar em uma sessão de jogo, o servidor do jogo deve verificar a solicitação de um identificador exclusivo, como um ID de sessão do jogador e um tíquete gerado pelo servidor que foi fornecido anteriormente ao cliente do jogo pelo serviço de matchmaking de back-end do jogo.

Ao iniciar a conexão com o servidor do jogo, seu software do lado do servidor pode usar essas informações para verificar com o serviço de matchmaking se a solicitação de conexão do jogador é válida e verificar se o jogador não está entrando em uma vaga anteriormente reservada na sessão de jogo para outro jogador. 

Para jogos hospedados na Amazon GameLift, consulte client/server Interações de jogos com GameLift servidores da Amazon para ver um exemplo de como esse tipo de validação do lado do servidor pode ser implementado.

Exemplo de cliente

Durante o lançamento beta inicial AnyCompany dos Jogos, eles descobriram que os jogadores estavam contornando seu sistema de matchmaking conectando-se diretamente aos servidores do jogo, levando a sérios problemas de integridade competitiva. Quando jogadores de alto nível descobriram que podiam compartilhar endereços IP de servidores com amigos, eles começaram a contornar o sistema de matchmaking baseado em habilidades, resultando em jogadores experientes entrando em partidas novatas e criando uma experiência frustrante para novos jogadores. AnyCompany Os jogos responderam implementando um sistema de validação do lado do servidor que gerou tíquetes de sessão exclusivos para cada solicitação de matchmaking. O sistema exigia os IDs dos jogadores e os tíquetes de solicitação de matchmaking e as tentativas de conexão verificadas com o serviço de matchmaking de back-end.

Etapas de implementação

  • Valide as solicitações de adesão de jogadores do lado do servidor usando identificadores exclusivos, como IDs de sessão de jogadores e tíquetes gerados pelo servidor.

  • Confirme a validade das solicitações de conexão com o serviço de matchmaking para bloquear o acesso não autorizado.

  • Verifique se as vagas reservadas nas sessões de jogo não são acessadas por jogadores não autorizados durante o processo de validação.