防止 iOS/Android 用户伪造他们的 GPS 位置

Preventing iOS/Android users from faking their GPS location

我正在构建将使用用户 GPS 位置的 Android 和 IOS 应用程序。我担心用户伪造他们的 GPS 位置,因为我听说有人使用 Uber

是否有程序化的方法来防止或检测这种情况?

我不确定,但如果有人想提供假的 GPS 位置,他需要已经 root phone。所以你可以检查,如果有人已经 root phone,那么不要相信 his/her 位置。要检查 phone 是否已 root:link

几乎没有办法验证 GPS 读数的正确性。但是,您可以使用一些变通方法来检测 可能的 欺骗:

首先,您可以检测他们是否启用了模拟位置设置(GPS 伪造应用程序通常使用该设置)。为此,查找 Settings.Secure.ALLOW_MOCK_LOCATION) 设置并检查它是否已启用。然后检查哪些应用程序具有该权限(即 android.permission.ACCESS_MOCK_LOCATION)。如果存在使用该权限的应用程序并且该设置已启用,则变化很大,它们可能会伪造用户的位置。

您也可以尝试使用 Location.isFromMockProvider,虽然我不确定结果有多准确。如果您正在检查的位置是通过 GPS 伪造应用程序获取的,则函数 returns 为真。