我有一个用户需要访问特定位置的应用程序。当用户在此位置附近时,表单正在打开以填充。我怀疑有些用户正在欺骗他们当前的位置(使用任何其他应用程序)并在他们的家中填写表格。意味着欺骗我的申请。
我在Apple商店搜索过,并没有可用于GPS欺骗的应用程序或可以欺骗iOS设备中其他应用程序的位置坐标的应用程序。
我用Google搜索并发现在Jailbroken设备上可以进行欺骗,并且在Cydia商店中可以使用某些应用程序,例如“akLocationX”,“假位置”等。以下是相同的文章。
http://www.addictivetips.com/ios/easily-fake-iphone-current-location-aklocationx/
任何人都可以帮助我,我怎样才能在Jailbroken设备上停止这种位置欺骗?
答案 0 :(得分:4)
根据另一个StackOverflow问题(Identify jailbroken device from iOS application),您可以检测您的应用是否与某些已知的越狱工具一起运行,并采用备用代码路径,例如禁用该部分应用(但不要退出)或者崩溃您的应用程序,因为这可能会导致您的应用程序无法通过AppStore测试)。
至于总是获得真正的位置,你真的不能 - 你的应用只能在它拥有的环境中运行 - 如果环境是越狱的iPhone,并且在该环境中运行的黑客导致地理位置api报告其位于Tattooine或Atlantis,那就是你的应用程序将获得的。下一个最佳选择是尝试检测越狱设备(如上所述)并更改应用程序的行为。
答案 1 :(得分:3)
为了欺骗一个位置,甚至不需要越狱设备。它可以通过运行具有模拟位置的应用程序在Xcode中完成。我不认为首先发现这种欺骗是有道理的。
答案 2 :(得分:2)
其他海报是正确的,一个很好的检查方法是验证设备是否已越狱。
但是,即使设备没有越狱,仍然可以使用附近的GPS发射器伪造GPS位置。所以我们假设(尽管不太可能),你的用户就是这样。
从技术上讲,可以检测GPS位置是否是假的。但是,您这样做的能力取决于该人是否伪造了其他信息,例如附近的Wifi网络或其外部IP(例如使用VPN)。
您可以检测附近的无线网络,然后查找其位置并将其与GPS报告的位置进行比较。但是有几个问题。
记住
参考文献:
您可以连接到在线服务,该服务会根据您的IP返回您的位置信息。然后,您可以将其与您提供的GPS位置进行比较。
这将通过应用商店审核流程,但是......
记住
参考文献:
答案 3 :(得分:0)
这是一个棘手的问题。它不太可能100%防止欺骗,因为客户可以通知服务器他们的位置。
通过验证服务器中具有地理位置数据库的用户的IP地址,有一种方法可以减少欺骗(不能完全消除欺骗)。您可以确保用户确实位于城市中。
答案 4 :(得分:0)
对于应用来说听起来很可怕:)
无论如何,现在有一种正确的处理方式:iBeacon(dev doc here)。
基本原则是:
CLBeaconRegion
监控这些信标的距离(信标使用Bluetooth Low Energy与iOS设备通信)