4

我正在开发一个 iOS 应用程序,用户可以在其中显示与周围环境相关的内容。我有一个用户名/密码验证。所以用户将他的 gps 数据连同他的登录信息发送到我的 PHP/MySQL 后端,然后返回数据。

但是,我担心有人可能会反编译我的应用程序,注册然后“扫描”我的整个数据库,只需发送带有不同 gps 数据的请求,这些数据实际上并非来自 iOS 设备。有什么办法可以防止这种情况发生吗?我已经用谷歌搜索并发现了这个威胁:

如何确保 API 请求来自我们的移动 (ios/android) 应用程序?

但我认为那里的问题略有不同,并没有解决我的问题。

我已经查看了 API 密钥,但没有找到一种方法来阻止恶意用户通过注册/反编译来访问 API,然后使用他的登录信息以及代码中的密钥。

任何帮助表示赞赏。简

4

3 回答 3

3

您可以记录每个用户的所有请求,然后使用 GPS 坐标将规则应用于用户的移动。例如,设置一个规则,如果坐标表明用户移动速度超过 500 英里/小时,或者一天内行驶超过 10,000 英里,诸如此类。如果规则触发,则该动作是人为的,您正在被扫描;如果规则没有触发,则意味着用户正在按预期以普通的、人性化的方式移动。

于 2013-10-11T21:42:51.137 回答
2

好吧,我不是移动设备开发人员,但如果您没有其他选择,您可以生成一个令牌(一些哈希),并且每次调用您的 API 都需要根据令牌进行验证?

于 2013-10-11T21:30:50.200 回答
1

我以前对这样的应用程序也有同样的问题。最后,您不能真正依赖正在检查的基于设备的耦合和访问规则。

首先要考虑的是某种形式的身份验证。但猜测您已经考虑过,它可能不适用于您的应用程序。

我的方法是检查和限制一天内来自某个来源的查询数量。根据刷新间隔计算,您希望从后端提取的数据量,再加上大约 10%,一旦超过就停止向该目的地提供数据,并向管理员发送有关该事件的电子邮件,以便他可以调查一下,并可能永久禁止该客户。

正如之前的评论中所述,它也不防水,但它以与设备无关的方式工作,你越难滥用它,它就越好。

于 2013-10-13T10:47:00.957 回答