最近在做考勤定位打卡,想禁止用户篡改位置信息,请问得如何控制?
![liukidd](https://img-cdn-tc.dcloud.net.cn/account/identicon/f852b903437938c9239508f54364577a.png)
liukidd
- 发布:2019-07-23 09:24
- 更新:2023-06-21 17:41
- 阅读:972
如何防止用户篡改位置信息?
分类:MUI
4 个回复
全栈 - 90后全栈男
想下原理就知道,无法禁止。
liukidd (作者)
之前用过陌陌,你打开手机的开发者模式,是禁止使用的。有没有API判断是否打开开发者模式?
FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866
腾讯定位、定位反作弊、伪定位、后台定位、单次或持续定位、场景定位(双端):https://ext.dcloud.net.cn/plugin?id=12983
Diligent_UI - 【插件开发】【专治疑难杂症】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=193663(微信搜索飘逸科技UI小程序直接体验)】【骗子请绕道】问题咨询请加QQ群:120594820,代表作灵感实用工具小程序
要检测设备是否使用虚拟定位或防止定位被篡改,可以采取以下方法:
在iOS和Android设备上检测虚拟定位:
iOS:在iOS设备上,你可以检查CLLocationManager的location属性是否返回真实的位置信息。如果设备使用了虚拟定位,可能会返回模拟的位置信息。
Android:在Android设备上,你可以通过检查LocationManager的isFromMockProvider()方法来判断位置信息是否来自模拟提供者。
检测定位是否被篡改:
iOS:在iOS设备上,你可以使用CoreLocation框架中的CLLocationManagerDelegate方法来检测定位的准确性。例如,你可以使用locationManager(_:didUpdateLocations:)方法获取位置更新,并检查这些位置是否在合理的时间和距离范围内。如果位置信息明显不合理或跳跃,可能表示被篡改。
Android:在Android设备上,你可以通过监听LocationListener的onLocationChanged()方法来获取位置更新,并使用合理的时间和距离范围进行验证。如果位置信息明显不合理或跳跃,可能表示被篡改。