如何信任GPS位置?

时间:2016-02-06 18:32:36

标签: android cordova security gps trust

我正在为使用GPS跟踪用户位置的移动平台制作新的应用程序,我需要相信该位置。

那么如何让我的移动应用程序信任收到的GPS位置?现在用应用程序伪造它很容易。我发现的唯一解决方案是测试GPS上是否有模拟,但即便如此也可以轻松绕过。

我正在使用Cordova构建应用程序。

3 个答案:

答案 0 :(得分:1)

有几种方法可以检查用户是否伪造了他们的位置。一种方法是检查他们是否在开发者设置中选中了“允许模拟位置”。一种方法是使用以下代码:

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();
}

虽然这些将有助于许多假冒位置应用程序,但不能保证有人找不到解决方法。

答案 1 :(得分:0)

如果您无法信任任何用户,并且您无法信任该用户的设备,则无法信任来自该用户或该设备的任何内容。

所以,如果你想消除所有作弊行为,你只能做一件事:

  • 聘请值得信赖的员工到该地点,并让您的员工告知您谁出现。

您可能会妥协,并要求他们向您发送该地点的明信片,该地点从该地点购买,并在该地点盖章,但随后一些当地旅游商店可能会出售邮寄明信片的服务,收取少量费用,而且你又回到了可能的骗子。

或者,放弃您可以在用户设备上使用应用程序的想法,以防止发送虚假地点,并使用您拥有的内容。

答案 2 :(得分:0)

尝试阅读GPS规格。我不知道,但如果您能够从用户那里接收此类数据,您可以信任带有时间戳和签名的卫星数据。用户不能伪造卫星 - 它们是复杂且难以接近的设备。