Czy istnieje sposób zweryfikowania danych o lokalizacji GPS otrzymanych od klienta?

9

Odpowiedź na to pytanie może być „NIE”, ale jest dość ważna, więc myślę, że równie dobrze mogę zapytać.

Powinno to stanowić problem dla wszystkich gier zorientowanych na lokalizację klient-serwer, w których lokalizacje graczy na świecie mają kluczowe znaczenie dla rozgrywki. Czy jest jakiś sposób, aby upewnić się, że dane o lokalizacji pochodzące od klienta są prawdziwe (tj. Odtwarzacz rzeczywiście tam jest)?

Pracując nad grami klient-serwer, wszyscy wiemy, że nigdy nie powinniśmy ufać żadnej informacji pochodzącej od klienta, dlatego cała ważna logika gry powinna odbywać się po stronie serwera. Jednak w przypadku informacji o lokalizacji MUSIMY to otrzymać od klienta. Czy istnieje sposób, aby dokładnie to sprawdzić, aby zapobiec oszukiwaniu?

Jamornh
źródło

Odpowiedzi:

10

Możesz użyć usługi geolokalizacji IP, aby uzyskać przybliżoną lokalizację, z której użytkownik się łączy. Porównaj to z otrzymanymi danymi GPS i możesz odrzucić niektóre ekstremalne przypadki (gracze łączący się przez proxy itp.). Możesz nawet obliczyć odległości między loginami użytkowników, a jeśli są one zbyt duże (powiedzmy, że lokalizacja przesunęła się o 1000 km między dwoma próbami logowania w ciągu 5 lub 10 minut), powiadom użytkownika.

Nie jest to jednak niezawodne i spowoduje więcej niż jedną niedogodność dla legalnych graczy.

r2d2rigo
źródło
Dziękuję, myślę, że przyjrzę się sprawdzeniu adresu IP, a także delcie lokalizacji między logowaniami / zameldowaniami na serwerze. To z pewnością spowoduje problemy dla legalnych graczy, jeśli polegamy na automatycznym wykrywaniu i zakazach ... Myślę, że po prostu oznaczę to do sprawdzenia przez administratora i podam pewne hojne ograniczenia; prawdopodobnie zajmiemy się każdą flagą indywidualnie dla każdego przypadku (mając nadzieję, że liczby są wystarczająco niskie, aby było to praktyczne).
Jamornh
GeoLokalizacja jest dość dokładna; nie powinieneś mieć żadnych problemów ... w zależności od pożądanej szczegółowości.
Vaughan Hilts,
10

Po stronie klienta nie ma niczego, czego nie można sfałszować, można manipulować wszystkim, co ma fizyczny dostęp.

Adres IP zawiera informacje o routingu, a tym samym wskazówki dotyczące lokalizacji. Ale gracz potrzebuje tylko serwera proxy i wyskakuje ... wskazówki IP są w zupełnie innej lokalizacji niż w rzeczywistości.

Zaufaj swoim graczom, nie dawaj im powodu, by próbowali oszukać system.

API-Beast
źródło
Zgadzam się z zaufaniem graczowi i nie dawaniem mu powodu, by oszukiwać system. Bardziej wygodne powinno być śledzenie systemu, aby coś osiągnąć, niż poświęcenie czasu na nakłonienie go do zrobienia tego samego. Ale niektórzy gracze zawsze znajdą powód do robienia rzeczy, których nie powinni robić, no cóż, mam nadzieję, że liczba ta jest bardzo niska, jeśli system jest dobrze zaprojektowany.
Jamornh,
3

Nie możesz prawdziwie zweryfikować tych informacji, tak jak nie możesz naprawdę zweryfikować żadnych informacji utworzonych przez źródło zewnętrzne. Więc to, czego chcesz, jest teoretycznie niemożliwe. Ale prawdopodobnie możesz utrudnić podróbkę.

Na przykład w telefonach z Androidem masz różnych dostawców lokalizacji , takich jak lokalizowanie użytkownika przy pobliskich masztach telefonów komórkowych, system pozycjonowania Wi-Fi itp. Możesz wymagać, aby co najmniej dwóch dostawców lokalizacji zwróciło podobne wartości, aby zaufać bardziej precyzyjnym z dwóch.

Nie polecałbym korzystania z geolokalizacji IP; tutaj, w Wielkiej Brytanii, jest to beznadziejnie niedokładne, ponieważ większość z nas korzysta z usług krajowych dostawców usług internetowych. W dobry dzień reklamy kierowane geograficznie odnoszą się do lokalizacji w odległości około 20 mil, a w zły dzień myślą, że jestem w odległości 100 mil. Ale prawdopodobnie możesz go użyć do sprawdzenia, czy użytkownik jest w odpowiednim kraju!

Kylotan
źródło
Dziękuję za tę odpowiedź. Kiedy mówisz o „dostawcach lokalizacji”, zakładam, że mówisz o interfejsie API lokalizacji Androida i sprzęcie używanym do obliczania lokalizacji. Utrudniłoby to nieco osobę próbującą sfałszować lokalizację (wymagającą podania 2-3 wartości zamiast 1), ale ponieważ i tak podaje fałszywe wartości, nie powinno to stanowić dla nich dodatkowej pracy do obejścia (zapewnienie dodatkowe fałszywe wartości.) Całkowicie zgadzam się z twoim punktem geolokalizacji IP, niewystarczająco szczegółowym, ale dobrym do wstępnej weryfikacji :) Dzięki za pomoc!
Jamornh,
Tak, absolutnie nie ma sposobu, aby zatrzymać zgłaszanie fałszywych wartości od klienta - wszystko, co możesz zrobić, to mieć nadzieję, że to utrudni.
Kylotan,
1

Nie nie ma mowy. Nawet w teorii.

ddyer
źródło