Existe-t-il un moyen de vérifier les données de localisation GPS reçues du client?

9

La réponse à cette question est peut-être "NON", mais c'est très important, donc je pense que je pourrais aussi bien demander.

Cela devrait être un problème pour tous les jeux sensibles à l'emplacement client-serveur où les emplacements des joueurs dans le monde sont au cœur du gameplay. Existe-t-il un moyen de s'assurer que les données de localisation provenant du client sont réelles (c'est-à-dire que le joueur est réellement là)?

Travaillant sur des jeux client-serveur, nous savons tous que nous ne devons jamais faire confiance aux informations provenant du client et donc toute la logique de jeu importante doit être effectuée côté serveur. Cependant, avec les informations de localisation, nous DOIVONS les recevoir du client. Existe-t-il un moyen de revérifier cela pour éviter de tricher?

Jamornh
la source

Réponses:

10

Vous pouvez utiliser un service de géolocalisation IP pour obtenir un emplacement approximatif à partir duquel l'utilisateur se connecte. Comparez cela avec les données GPS reçues et vous pouvez éliminer certains cas extrêmes (joueurs se connectant via un proxy, etc.). Vous pouvez même calculer les distances entre les connexions utilisateur et si elles sont trop élevées (par exemple, l'emplacement a déplacé 1000 km entre deux tentatives de connexion en 5 ou 10 minutes), informez l'utilisateur.

Cependant, ce n'est pas infaillible et vous causerez plus d'un inconvénient aux joueurs légitimes.

r2d2rigo
la source
Merci, je pense que je vais examiner la vérification IP ainsi que le delta de localisation entre les connexions / enregistrements avec le serveur. Cela va certainement causer des problèmes aux joueurs légitimes si nous nous appuyons sur la détection automatique et les interdictions ... Je pense que je vais simplement le signaler pour examen par l'administrateur et donner quelques limites généreuses; nous traiterons probablement chaque drapeau au cas par cas (en espérant que les chiffres soient suffisamment bas pour que cela soit pratique.)
Jamornh
La géolocalisation est assez précise; vous ne devriez pas avoir de problèmes ... selon la granularité que vous souhaitez.
Vaughan Hilts
10

Il n'y a rien du côté client qui ne puisse pas être truqué, tout ce à quoi quelqu'un a un accès physique peut être manipulé.

L'IP contient des informations de routage et donc des indications sur l'emplacement. Mais le joueur a juste besoin d'un proxy et whoops ... l'IP indique un emplacement complètement différent de celui du joueur.

Faites confiance à vos joueurs, ne leur donnez pas de raison d'essayer de tromper le système en premier lieu.

API-Beast
la source
Je suis d'accord pour faire confiance au joueur et ne lui donner aucune raison de tromper le système. Il devrait être plus pratique de suivre le système pour réaliser quelque chose que de prendre le temps de le piéger pour faire la même chose. Mais certains joueurs trouveront toujours une raison de faire des choses qu'ils ne sont pas censés faire, eh bien, j'espère que ce nombre est extrêmement faible si le système est bien conçu.
Jamornh
3

Vous ne pouvez pas vraiment vérifier ces informations plus que vous ne pouvez vraiment vérifier les informations créées par une source externe. Donc, ce que vous voulez est théoriquement impossible. Mais vous pouvez probablement le rendre un peu plus difficile à simuler.

Par exemple, sur les téléphones Android, vous avez différents fournisseurs de localisation , tels que la localisation d'un utilisateur par les mâts de téléphone portable à proximité, le système de position Wi-Fi, etc. Vous pouvez exiger qu'au moins deux fournisseurs de localisation retournent des valeurs similaires afin de faire confiance aux plus précis des deux.

Je ne recommanderais pas d'utiliser la géolocalisation IP; ici au Royaume-Uni, il est désespérément inexact, car la plupart d'entre nous utilisent des FAI nationaux. Un bon jour, les publicités géo-ciblées se réfèrent à des emplacements à environ 20 miles de distance, et un mauvais jour, ils pensent que je suis à 100 miles de là. Mais vous pouvez probablement l'utiliser pour vérifier que l'utilisateur est dans le bon pays!

Kylotan
la source
Merci pour cette réponse. Lorsque vous parlez de «fournisseurs de localisation», je suppose que vous parlez de l'API de localisation d'Android et du matériel qu'il utilise pour calculer la localisation. Cela rendrait la tâche un peu plus difficile pour la personne essayant de simuler l'emplacement (devant fournir 2-3 valeurs au lieu de 1), mais comme elles fournissent de toute façon de fausses valeurs, cela ne devrait pas poser beaucoup de travail supplémentaire pour elles de contourner (fournir fausses valeurs supplémentaires.) Tout à fait d'accord avec votre point sur la géolocalisation IP, pas assez granulaire mais bon pour une vérification grossière :) Merci pour l'aide!
Jamornh
Oui, il n'y a absolument aucun moyen d'arrêter le signalement de fausses valeurs d'un client - tout ce que vous pouvez faire est d'espérer rendre les choses difficiles.
Kylotan
1

Non, pas du tout. Pas même en théorie.

ddyer
la source