Erkennen oder verhindern, wenn der Benutzer verwendet gefälschte Lage
Werde ich einen Benutzer blockieren aus mit meiner app, wenn Sie fake die Lage.
Also ich benutze isFromMockProvider
um zu überprüfen, ob die URL ist fake (Folgen hier). Aber isFromMockProvider()
false zurückgeben wird, für gefälscht Standorte in einigen Fällen.
public void onLocationChanged(Location location) {
textView.append("long:"+location.getLatitude()+" - lat:"+location.getLongitude()+" - isMock :"+location.isFromMockProvider() + "\n");
}
Meinem Fall ist: ich benutze die app Fake GPS location für gefälschte Sie zu einem Speicherort, dann deaktiviere ich gefälschte Lage und gehe zu meinem app. Dann die onLocationChanged gibt das fake-Lage mit isFromMockProvider() = false
Video recorder: https://www.youtube.com/watch?v=rWVvjOCaZiI (in diesem video meine aktuelle Position ist, 16.06, 108.21, die gefälschte Lage ist 36.26,138.28. Sie sehen im letzten video die Lage ist 36.26,138.28 aber isFromMockProvider=false)
Gibt es eine Möglichkeit zu erkennen, ob ein Benutzer verwendet eine gefälschte Lage in diesem Fall? Jede Hilfe oder Anregungen wäre toll geschätzt.
DEMO-Projekt
absolut Nein, es nicht wieder wirkliche Lage
getLastLocation
zurück fake-Standort. Ich check es oft 🙁sind Sie falsch, hat er schon den Hinweis, dass "getLastLocation Rückkehr der fake location ", nicht das wirkliche Lage
Was sind die Zeitstempel zurückgegeben werden, für diejenigen, die fake Standorten, die waren nicht wirklich fake?
Dieses problem ist ein häufiges Problem. Kann ich bitte Ihre motivation für die Vergabe Kopfgeld auf eine 'Antwort' die nicht Adresse Ihre Frage?
InformationsquelleAutor Phan Van Linh | 2017-03-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Riskieren eine Realistische Antwort
Ich würde gerne eine Antwort, die hilft, die Entwickler verstehen, die public-relations-Aspekt der Produkt-design, wobei das Risiko der Kritik. Ehrlich gesagt, kann man nicht schreiben großer Anwendungen in der informatik Vakuum. Die Befriedigung der Nutzerbedürfnisse und Lastenausgleich mit Sicherheit ist eines der wichtigsten Themen in der software-Schnittstelle und behavioral design heute, vor allem in den mobilen Raum.
Aus dieser Perspektive, Ihre Frage, "gibt es eine Möglichkeit zu erkennen, ob ein Benutzer verwendet eine gefälschte Lage in diesem Fall?" kann nicht die am meisten relevante Frage, die Sie Gesicht. Ich bin nicht ausweichend, indem du diese andere Frage, die kann Ihnen helfen, mehr und es ist etwas, was ich beantworten kann: "Ist es eine Möglichkeit zum sicheren abrufen der Daten aus dem Gerät des Benutzers die geocoordinate firmware, so dass es nicht gefälscht werden?"
Die Antwort ist "Nein".
Android-HTTP-Client, der Vertrag
Es ist nicht Teil der Android-client-server-Vertrag oder Ihre Wettbewerber zu gewährleisten, Benutzer Informationen zum Standort der Geräte.
Praktischen Vernunft
Es ist tatsächlich eine Kraft auf dem Markt, die wahrscheinlich stoßen gegen diese Garantie auf unbestimmte Zeit. Viele Geräte-Besitzer (und Ihre Benutzer) wollen Kontrolle darüber, ob die Menschen wissen, Ihre wahre Lage für Privatsphäre und Haus und Familie Sicherheit.
Lösung
Die nächste Frage können Sie sich Fragen, wie ein designer Ihre software wird "Wie kann die app oder der Bibliothek arbeiten und für die muss ich versuchen zu füllen mit einem bestimmten Prozentsatz der user-community, mit der heutigen (oder morgigen) location spoofing software?"
Beim schreiben von business-intelligence-software, oder es gibt einige andere statistische Aspekt zu Ihrem system, dann müssen Sie die software entspricht der Fehlerbalken. Wenn Sie die Anzeige der stats, dann ist der Fehler bars wäre eine entsprechende grafische Darstellung die Funktion. Die Schätzung des Prozentsatzes der Lage so genannte "Spoofer" aus einer Bevölkerung von Nutzern erfordern würde, weiter zu studieren.
InformationsquelleAutor FauChristian
Ich zwei Möglichkeiten, um zu identifizieren fake Standorten.
Erste, das ich überprüfen mock Lage, wie in den anderen code hier.
Sekunde, ob ich laufende apps und Dienste, müssen die Berechtigung zum Zugriff auf mock Lage. Und es scheint gut funktionieren.
InformationsquelleAutor John
Antworten auf Diese Frage ALSO und in geringerem Maße auch die Antworten auf Diese Frage ALSO scheinen zu zeigen, Sie leiden unter einem unglücklichen Problem mit dem Zwischenspeichern in der FusedLocationApi verursacht durch onLocationChanged aufgerufen wird, mit einer out-of-date timestamp (so ignoriert man das Ergebnis, wie es denkt, gibt es bereits neuere Daten).
Zitieren Reno ' s Antwort:
Die Lösung sein wird, um stattdessen rufen Sie einen Speicherort aus der GPS-Anbieter etwa so:
(Der code oben stammt aus einem längeren Beispiel hier)
InformationsquelleAutor Nick Cardoso
Verwende ich diese Methode in meinen Projekten und es funktioniert perfekt bis jetzt:
für api < 18
Für api >= 18, die Sie verwenden sollten
Der Punkt ist
location.isFromMockProvider
ist buggy, und einige Male wird es eine verspottet Lage als OK !!!Es ist eine Problemumgehung, die in diesem link mit allen Details
Standort auf Android: Stoppen Sie, über Mich lustig!
der Ansatz ist :
Erinnern, die am letzten Standort mit der Bezeichnung als ein mock
Wenn eine neue "nicht-mock" Lesen ist innerhalb von 1 km von der letzten verspotten, ablehnen
es.
Nur löschen des letzten mock Lage nach 20 aufeinander folgenden "nicht-mock"
Lesungen.
Ich bearbeitet meine asnwer @PhanVanLinh
danke, aber es fehlen einige hier. überprüfen Sie bitte meine Frage nochmal. jetzt bin ich mit
isFromMockProvider
und es gibt ein problem mitisFromMockProvider
also Stelle ich diese Frage. Zweiten, den link den du gegeben hast ist nicht gut in diesem Fall: Benutzer gefälschte Lage app FakeGPS dann Benutzer deaktivieren fake-Standort, bevor Sie gehen, um meine Anwendung. Zu dieser Zeitmost recent location labeled as a mock
ist nicht vorhanden undisFromMockProvider
= falseInformationsquelleAutor Omid Heshmatinia