防止 iOS 应用程序获取模拟位置

问题描述 投票:0回答:2

是否可以确保 iOS 应用程序获取的 GPS 位置是真实的,并且不是以某种方式非法提供的虚假位置(例如通过 LocationHolic 等其他应用程序)?

谢谢!

ios security geolocation mocking spoofing
2个回答
0
投票

理论上你可以进行一些 IP 号码地理查找(例如,如何通过 IP 进行地理查找?),但这并不完全可靠(例如 VPN),因此我会犹豫是否据此质疑某人的位置。鉴于 locationholic 适用于越狱设备,当且仅当应用程序在越狱设备上运行时,也许可以根据 IP 派生的位置信息验证位置信息。对于基于 ip 号码的地理查找或识别设备是否越狱的信息,我在这两方面都不是专家,但这两个主题在 StackOverflow 上的其他地方都有很好的介绍,或者可以通过谷歌搜索来回答。

简而言之,我怀疑在未越狱的手机上位置是可靠的。关于越狱手机上的“查找我的 iPad/iPhone”,我不能谈论这一点,但在越狱设备上,所有可靠性和安全性规则都被抛到了窗外,所以你不能依赖它。


0
投票

适用于 iOS 15 及以上版本,

func isLocationSimulated() -> Bool {
        if #available(iOS 15.0, *) {
            let locationManager = CLLocationManager()
            let isLocationSimulated = locationManager.location?.sourceInformation?.isSimulatedBySoftware ?? false
            let isProducedByAccess = locationManager.location?.sourceInformation?.isProducedByAccessory ?? false
            let info = CLLocationSourceInformation(softwareSimulationState: isLocationSimulated, andExternalAccessoryState: isProducedByAccess)
            return info.isSimulatedBySoftware || info.isProducedByAccessory
        } else {
            return false
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.