我正在爲使用GPS跟蹤用戶位置的移動平臺開發一款新應用,並且我需要相信該位置。GPS位置如何被信任?
那麼如何讓我的移動應用程序信任接收到的GPS位置呢?現在,用應用程序僞裝很容易。我發現的唯一解決方案是測試GPS是否有模擬,但即使這樣也可以輕鬆繞過。
我正在用Cordova構建應用程序。
我正在爲使用GPS跟蹤用戶位置的移動平臺開發一款新應用,並且我需要相信該位置。GPS位置如何被信任?
那麼如何讓我的移動應用程序信任接收到的GPS位置呢?現在,用應用程序僞裝很容易。我發現的唯一解決方案是測試GPS是否有模擬,但即使這樣也可以輕鬆繞過。
我正在用Cordova構建應用程序。
如果您不能信任任何用戶,並且您不能信任用戶的設備,則不會信任來自用戶或設備的任何信息。
所以,如果你想消除所有作弊,只有一個你可以做真實的東西:
你可能會妥協,並要求他們向您發送該位置的明信片,從該位置買的,從該位置加蓋後,但隨後當地一些旅遊商店可能出售郵寄明信片給您一個的服務小額費用,你又回到了可能的騙子。
或者,放棄這個想法,您可以在用戶的設備上使用應用程序來防止發送虛假的位置,並使用您擁有的位置。
有幾種方法可以檢查用戶是否僞造他們的位置。一種方法是檢查他們是否在開發人員設置中選中了「允許模擬位置」。要做到這一點的方法是使用下面的代碼:
if (Settings.Secure.getString(getActivity().getContentResolver(), Settings.Secure.ALLOW_MOCK_LOCATION).equals("0")) {
//Allow Mock Locations is enabled!
}
,或者如果他們是在Android 6+:
@Override
public void onLocationChanged (Location location){
boolean isMockLocation = location.isFromMockProvider();
}
雖然這些會與許多假冒的位置讓應用程式在那裏,它是不保證有人沒有找到解決辦法。
嘗試閱讀GPS規範。我不知道,但如果你能夠從用戶那裏接收到這樣的數據,你可以信任帶有時間戳和簽名的衛星數據。用戶不能僞造衛星 - 它們是複雜且難以訪問的設備。
你不能相信位置; *爲什麼*你認爲你需要? – jonrsharpe
因爲我想根據那個人的位置「做出動作」,並且如果他僞造它,他可能會賺到他不能做的東西。那麼沒有辦法來防止僞造gps位置? –
不確定你的意思是「make moves」*但不是,你是在瀏覽器/設備的數據擺佈,這不一定是值得信賴的。 – jonrsharpe