检测移动应用用户是不是在代理后面

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

以上是关于检测移动应用用户是不是在代理后面的主要内容,如果未能解决你的问题,请参考以下文章

在没有用户代理嗅探的情况下检测移动浏览器[关闭]

在没有用户代理嗅探的情况下检测移动浏览器[关闭]

如何检测 Facebook 应用内浏览器?

您如何在桌面和移动 Chrome 用户代理之间进行检测?

iPhone 检测到用户向上移动了他们的设备

使用播放框架的移动应用程序的不同视图