检测移动应用用户是不是在代理后面
Posted
技术标签:
【中文标题】检测移动应用用户是不是在代理后面【英文标题】:Detect if a mobile app user is behind a proxy检测移动应用用户是否在代理后面 【发布时间】:2021-02-11 02:59:54 【问题描述】:我正在构建一个移动应用,它需要在发送数据或发帖时知道用户的位置 我们担心用户是否开始使用代理服务器。 是否有任何解决方案/python 库可以整合到移动应用程序中以检测用户伪造他们的位置?
【问题讨论】:
【参考方案1】:用户可以使用 *** 伪造他们的位置。代理实际上还有其他用途。
使用执行此操作的 API。您需要一个可以通过request
调用的实时API。我使用 Abstract API 是因为它可靠且免费:https://www.abstractapi.com/ip-geolocation-api 虽然您需要创建一个帐户,但它很轻松。
import requests
response = requests.get("https://ipgeolocation.abstractapi.com/v1/?api_key=YOUR_KEY&ip_address=THE_IP")
print(response.content)
在 JSON 响应中,['security']['is_***']
中有一个布尔值,用于了解 IP 是否属于 ***。
另一种解决方案是自己创建一个脚本,它将您的用户 IP 与已知 *** 的 IP 列表进行比较。但是要找到并收集所有*** IP并定期更新它们可能并不容易。
编辑回应您的评论:
我的回答仍然适用于欺骗 GPS 位置的应用,例如您链接的那个,因为实时 API 不会受此影响。
如果您打算使用手机中的 GPS 数据并且只寻找一种方法来检测它是真还是假,您可以将这些 GPS 坐标与 API 响应中给出的坐标进行比较。如果差异太大,您可以断定 GPS 数据是伪造的。
【讨论】:
基本上如何保护我的应用免受用户使用这样的应用play.google.com/store/apps/… @SJamro 我的回答会奏效。请查看我的编辑,我添加了更多信息。【参考方案2】:您可以在自己的服务器上下载和托管*** or proxy list,并使用应用 IP 地址查询它,以检测一个 IP 地址是否位于 *** 或代理后面。
有可用的公共网络服务,但我不建议这样做,因为如果流量很大,第 3 方 API 站点可能会阻止您的 API 调用。
【讨论】:
第三方如 ipdata.co 和 iptegistry.co以上是关于检测移动应用用户是不是在代理后面的主要内容,如果未能解决你的问题,请参考以下文章