我正在设计一种基于位置的服务,其中可靠性起着重要作用。我希望我的用户知道其他用户提供的位置是真实的。
我研究了一些模拟位置,并在此 线程中注意到应用程序LocationSpoofer。我目前没有植根手机,但它指出,即使没有设置,它也可以在植根时模拟位置。
有什么已知的方法可以防止这种情况发生吗?我可以使用一些简单的启发式方法来验证用户没有在 30 分钟内从法国旅行到夏威夷,但我宁愿获得完整的保护。
提前谢谢!
我正在设计一种基于位置的服务,其中可靠性起着重要作用。我希望我的用户知道其他用户提供的位置是真实的。
我研究了一些模拟位置,并在此 线程中注意到应用程序LocationSpoofer。我目前没有植根手机,但它指出,即使没有设置,它也可以在植根时模拟位置。
有什么已知的方法可以防止这种情况发生吗?我可以使用一些简单的启发式方法来验证用户没有在 30 分钟内从法国旅行到夏威夷,但我宁愿获得完整的保护。
提前谢谢!
而不是长评论:
“可靠性很重要”
只要您为“可靠”输入提供可靠的输出,我认为您无需处理“欺骗”或虚假输入就可以了。如果您将数据存储在持久存储中,您可以处理“可疑”数据的情况。
即在数据上定义和应用场景,以识别“用户在 30 分钟内从法国旅行到夏威夷”等案例,并以适当的方式处理此类案例。或者您甚至可以拒绝不现实的数据。
从安全的角度来看,您应该假设来自客户端验证过程的任何数据都不可信。数据可能会被有意或无意地修改,而这超出了您的直接控制范围。
如果您想防止位置欺骗,那么我建议您进行服务器端检查。