Gibt es eine Möglichkeit, die vom Client empfangenen GPS-Standortdaten zu überprüfen?

9

Die Antwort auf diese Frage mag "NEIN" sein, aber es ist ziemlich wichtig, also denke ich, ich könnte genauso gut fragen.

Dies sollte ein Problem für alle standortbezogenen Client-Server-Spiele sein, bei denen die Standorte der Spieler auf der Welt für das Gameplay von zentraler Bedeutung sind. Können wir auf irgendeine Weise sicherstellen, dass die vom Client kommenden Standortdaten echt sind (dh der Player ist tatsächlich da)?

Bei der Arbeit an Client-Server-Spielen wissen wir alle, dass wir niemals Informationen vertrauen sollten, die vom Client stammen, und daher sollte alle wichtige Spielelogik serverseitig erfolgen. Bei Standortinformationen MÜSSEN wir diese jedoch vom Kunden erhalten. Gibt es eine Möglichkeit, dies zu überprüfen, um Betrug zu verhindern?

Jamornh
quelle

Antworten:

10

Sie können einen IP-Geolokalisierungsdienst verwenden, um einen ungefähren Standort zu ermitteln, von dem aus der Benutzer eine Verbindung herstellt. Vergleichen Sie dies mit den empfangenen GPS-Daten, und Sie können einige Extremfälle ausmerzen (Spieler, die über einen Proxy eine Verbindung herstellen usw.). Sie können sogar Entfernungen zwischen Benutzeranmeldungen berechnen und den Benutzer benachrichtigen, wenn diese zu hoch sind (z. B. wenn der Standort innerhalb von 5 oder 10 Minuten um 1000 km zwischen zwei Anmeldversuchen verschoben wurde).

Dies ist jedoch nicht kinderleicht und Sie werden legitimen Spielern mehr als eine Unannehmlichkeit bereiten.

r2d2rigo
quelle
Vielen Dank, ich denke, ich werde die IP-Prüfung sowie das Standortdelta zwischen Anmeldungen / Einchecken mit dem Server untersuchen. Es wird definitiv Probleme für legitime Spieler verursachen, wenn wir uns auf automatische Erkennung und Verbote verlassen ... Ich denke, ich werde es nur zur Überprüfung durch den Administrator markieren und einige großzügige Grenzen setzen. Wir werden uns wahrscheinlich von Fall zu Fall mit jeder Flagge befassen (in der Hoffnung, dass die Zahlen niedrig genug sind, damit dies praktisch ist).
Jamornh
GeoLocation ist ziemlich genau; Sie sollten keine Probleme haben ... abhängig von der gewünschten Granularität.
Vaughan Hilts
10

Auf der Client-Seite gibt es nichts, was nicht gefälscht werden kann. Alles, auf das jemand physischen Zugriff hat, kann manipuliert werden.

Die IP enthält Routing-Informationen und damit Hinweise zum Standort. Aber der Spieler braucht nur einen Proxy und hoppla ... die IP deutet auf einen völlig anderen Ort hin als der Spieler tatsächlich ist.

Vertrauen Sie Ihren Spielern, geben Sie ihnen keinen Grund, das System überhaupt auszutricksen.

API-Beast
quelle
Ich bin damit einverstanden, dem Spieler zu vertrauen und ihm keinen Grund zu geben, das System auszutricksen. Es sollte bequemer sein, dem System zu folgen, um etwas zu erreichen, als sich die Zeit zu nehmen, es dazu zu bringen, dasselbe zu tun. Aber einige Spieler werden immer einen Grund finden, Dinge zu tun, für die sie nicht gedacht sind. Ich hoffe, dass die Anzahl extrem niedrig ist, wenn das System gut ausgelegt ist.
Jamornh
3

Sie können diese Informationen nicht mehr überprüfen als Informationen, die von einer externen Quelle erstellt wurden. Was Sie wollen, ist also theoretisch unmöglich. Aber Sie können es wahrscheinlich etwas schwieriger machen, zu fälschen.

Zum Beispiel auf Android-Handys, die Sie haben verschiedene Standortanbieter , z. B. das Auffinden eines Benutzers über die nahe gelegenen Mobilfunkmasten, das Wi-Fi-Positionssystem usw. Sie können verlangen, dass mindestens zwei Standortanbieter ähnliche Werte zurückgeben, um den genaueren zu vertrauen von den beiden.

Ich würde die Verwendung der IP-Geolokalisierung nicht empfehlen. Hier in Großbritannien ist es hoffnungslos ungenau, da die meisten von uns nationale ISPs verwenden. An einem guten Tag beziehen sich geografisch ausgerichtete Anzeigen auf Orte, die etwa 32 km entfernt sind, und an einem schlechten Tag denken sie, ich sei 100 km entfernt. Aber Sie können es wahrscheinlich verwenden, um zu überprüfen, ob sich der Benutzer im richtigen Land befindet!

Kylotan
quelle
Danke für diese Antwort. Wenn Sie sich auf "Standortanbieter" beziehen, sprechen Sie vermutlich von der Standort-API von Android und der Hardware, mit der der Standort berechnet wird. Dies würde es für die Person, die versucht, den Ort zu fälschen, etwas schwieriger machen (sie muss 2-3 Werte anstelle von 1 angeben), aber da sie sowieso gefälschte Werte bereitstellt, sollte dies für sie keine zusätzliche Arbeit bedeuten, um sie zu umgehen (bereitstellen) zusätzliche gefälschte Werte.) Stimmen Sie voll und ganz mit Ihrem Standpunkt zur IP-Geolokalisierung überein, nicht detailliert genug, aber gut für eine grobe Überprüfung :) Vielen Dank für die Hilfe!
Jamornh
Ja, es gibt absolut keine Möglichkeit, die Meldung gefälschter Werte von einem Kunden zu stoppen. Sie können nur hoffen, dass dies schwierig wird.
Kylotan
1

Nein, auf keinen Fall. Nicht einmal theoretisch.

ddyer
quelle