question

entelicon avatar image
entelicon asked

Exploits + Spawning servers

I was wondering what prevents a user from exploiting a game, and asking PlayFab to spin up multiple servers?

Custom Game Servers
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

·
brendan avatar image
brendan answered

PlayFab is a Web API based system, so you always do need to assume that any endpoint could be called by a hacked client in ways your game doesn't. In terms of spawning servers, first, I would recommend not leaving Client->StartGame on, unless you absolutely have to. That leaves only Matchmake as the way to get a slot in a game. That API call (which the client is rate-limited on, they can't call it frequently) finds the first available slot in a game session that matches the parameters (region, game mode, etc.) and assigns it to the player temporarily, so that they can connect to it. Only if there are no slots in any game session matching the parameters given would a new server instance be started. And it's important to note that this is a server instance - not a server host (the actual machine running the instances).

So while a user could be abusive and call Matchmake in ways you don't intend, they would be limited in how they do so, unless they use a distributed attack (which is outside the scope of what we're discussing here), and it would be relatively easy for you to spot them, and so ban their account from your game.

If you want to be even more secure though, you can turn off the Matchmake call as well, and create your own matchmaking server using our Matchmaker API.

And, of course, we'll be continuing to add to the service, to provide you with more ways to track on user behavior, as well as additional ways to secure your titles.

2 comments
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Brian Jordan avatar image Brian Jordan commented ·

Thanks, this is a useful overview of the issues in question. Client.StartGame respects Player Bans as well, right? Curious what makes Client.StartGame worse to leave open than Matchmake, is it that Matchmake doesn't allow a given player to be matched with multiple instances at once, while StartGame can be called in quick succession to flood the instance list?

0 Likes 0 ·
brendan avatar image brendan Brian Jordan commented ·

Correct - any banned client will get a 'banned' error response back to any Client API call, including StartGame. The reason I'd recommend only using StartGame if you have to is because that API call specifically starts a whole new instance of a game session, where Matchmake just returns an open slot in a game instance.

0 Likes 0 ·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.