From the devhub documentation, every method of communicating between two places in a universe when a player is teleported between them has some element of client interaction. The ordinary :Teleport() call is done clientside so of course this is not secure, but when it comes to Private/ Reserved servers there is no reason for it to be this way.
The method :TeleportToPrivateServer can only be called from the Server:
& there’s a server side function available to retrieve the information sent:
https://developer.roblox.com/en-us/api-reference/function/Player/GetJoinData
Despite it all being server-sided, this data clearly has some element of client involvement:
It seems likely to me that either an identifier to some data stored server side is being sent clientside with the player, and this reference is then used to pull that data from a Roblox server, or that a hash of the data originally sent is being stored by Roblox and then compared later on. Why is there no method to send data directly from server to server, rather than server > client > server with “security checks”?