防止iOS/Android用户伪造他们的GPS位置
问题描述:
我正在构建将使用用户的GPS位置的Android和IOS应用程序。我很担心用户伪造他们的GPS位置,因为我听说有人在用Uber做。防止iOS/Android用户伪造他们的GPS位置
是否存在预防或检测此问题的程序化方法?
答
有几乎没有办法来验证您的GPS读数的正确性。但是,您可以使用以下解决方法来检测可能的欺骗:
首先,您可以检测他们的模拟位置设置是否处于打开状态(GPS伪装应用程序常用)。为此,查找Settings.Secure.ALLOW_MOCK_LOCATION)
设置并检查它是否启用。然后检查哪些应用程序具有该权限(即android.permission.ACCESS_MOCK_LOCATION
)。如果存在使用该权限的应用并且该设置处于打开状态,那么它们可能会伪造用户的位置。
您也可以尝试使用Location.isFromMockProvider
,但我不确定结果有多准确。如果您正在检查的位置是通过GPS伪造应用程序获取的,则该函数返回true。
当然,单独生根并不一定意味着你伪造你的位置。这几乎就像是说“如果这个人有枪,他可能是一个杀手”。从用户听觉中排除所有根深蒂固的手机是一项重大的成果,如果您能够提供帮助,我不建议采取自己的做法。而不是检查,手机是否扎根,我建议检查,是否启用GPS伪装的选项(请参阅我的答案了解详情) – altskop