Esiste un modo per verificare i dati sulla posizione GPS ricevuti dal client?


9

La risposta a questa domanda potrebbe essere "NO" ma è piuttosto importante, quindi penso che potrei anche chiedere.

Questo dovrebbe essere un problema per tutti i giochi basati sulla posizione client-server in cui le posizioni dei giocatori nel mondo sono fondamentali per il gameplay. Esiste un modo in cui possiamo assicurarci che i dati sulla posizione che provengono dal client siano reali (ovvero che il lettore sia effettivamente lì)?

Lavorando su giochi client-server, sappiamo tutti che non dovremmo mai fidarci di alcuna informazione proveniente dal client e quindi tutte le logiche di gioco importanti dovrebbero essere eseguite sul lato server. Tuttavia, con le informazioni sulla posizione, DEVE riceverle dal cliente. C'è un modo per ricontrollare questo per evitare imbrogli?

Risposte:


10

È possibile utilizzare un servizio di geolocalizzazione IP per ottenere una posizione approssimativa da cui l'utente si sta connettendo. Confronta questo con i dati GPS ricevuti e puoi eliminare alcuni casi estremi (giocatori che si collegano tramite proxy, ecc.). Puoi persino calcolare le distanze tra i login degli utenti e se sono troppo alti (diciamo, la posizione si è spostata di 1000 km tra due tentativi di accesso in 5 o 10 minuti) avvisa l'utente.

Tuttavia, questo non è infallibile e causerai più di un inconveniente ai giocatori legittimi.


Grazie, penso che esaminerò il controllo IP e il delta di posizione tra accessi / check-in con il server. Sicuramente causerà problemi ai giocatori legittimi se ci affidiamo al rilevamento automatico e ai divieti ... Penso che lo segnalerò solo per la revisione dell'amministratore e darò alcuni limiti generosi; probabilmente tratteremo ogni bandiera caso per caso (sperando che i numeri siano abbastanza bassi da
renderlo

GeoLocation è abbastanza preciso; non dovresti avere problemi ... a seconda della granularità che desideri.
Vaughan Hilts,

10

Non c'è nulla sul lato client che non può essere simulato, tutto ciò a cui qualcuno ha accesso fisico può essere manipolato.

L'IP contiene informazioni di routing e quindi suggerimenti sulla posizione. Ma il giocatore ha solo bisogno di un proxy e urla ... l'IP suggerisce in una posizione completamente diversa da quella del giocatore.

Fidati dei tuoi giocatori, non dare loro una ragione per provare a ingannare il sistema in primo luogo.


Concordo con la fiducia del giocatore e non dando loro alcun motivo per ingannare il sistema. Dovrebbe essere più conveniente seguire il sistema per ottenere qualcosa che prendersi il tempo di ingannarlo per fare la stessa cosa. Ma alcuni giocatori troveranno sempre un motivo per fare cose che non dovrebbero fare, ah bene, spero che il numero sia estremamente basso se il sistema è progettato bene.
Jamornh,

3

Non è possibile verificare veramente queste informazioni più di quanto non sia possibile verificare veramente qualsiasi informazione creata da una fonte esterna. Quindi ciò che vuoi è teoricamente impossibile. Ma probabilmente puoi renderlo un po 'più difficile da falsificare.

Ad esempio, sui telefoni Android sono disponibili vari provider di posizione , ad esempio l'individuazione di un utente tramite gli alberi del cellulare nelle vicinanze, il sistema di posizione Wi-Fi, ecc. Potrebbe essere necessario che almeno due provider di posizione restituiscano valori simili al fine di fidarsi del più preciso dei due.

Non consiglierei di utilizzare la geolocalizzazione IP; qui nel Regno Unito è irrimediabilmente inaccurato poiché la maggior parte di noi utilizza ISP nazionali. In una buona giornata gli annunci con targeting geografico si riferiscono a località a circa 20 miglia di distanza e in una brutta giornata pensano che io sia a 100 miglia di distanza. Ma probabilmente puoi usarlo per verificare che l'utente sia nel paese giusto!


Grazie per questa risposta Quando fai riferimento a "fornitori di servizi di localizzazione", suppongo che tu stia parlando dell'API di localizzazione di Android e dell'hardware utilizzato per calcolare la posizione. Ciò renderebbe leggermente più difficile la persona che tenta di simulare la posizione (dovendo fornire 2-3 valori anziché 1) ma poiché forniscono comunque valori falsi, ciò non dovrebbe comportare molto lavoro aggiuntivo da bypassare (fornire valori falsi aggiuntivi.) Completamente d'accordo con il tuo punto sulla geolocalizzazione IP, non abbastanza granulare ma buono per una verifica approssimativa :) Grazie per l'aiuto!
Jamornh

Sì, non c'è assolutamente alcun modo per interrompere la segnalazione di valori falsi da parte di un cliente - tutto ciò che puoi fare è sperare di renderlo difficile.
Kylotan,

1

No. Assolutamente no. Nemmeno in teoria.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.