2013-10-11 56 views
4

我开发一个iOS应用程序,用户显示与他们周围的内容来。我有一个用户名/密码认证。因此,用户将他的GPS数据和他的登录信息发送到我的PHP/MySQL后端,然后返回数据。确保一个HTTP(S)请求从我的iOS应用

不过,我担心有人可能反编译我的应用程序,注册,然后通过简单的发送与不同的GPS数据请求实际上并不来自于iOS设备“扫描”我的整个数据库。有什么办法可以防止这种情况发生?我已经用Google搜索,发现这种威胁:

How to make sure API requests come from our mobile (ios/android) app?

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

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

任何帮助表示赞赏。 Jan

+2

无论设备可以做什么,另一台机器也可以做。你可以让路径越来越难以发现。 –

回答

0

我以前有过这样的应用程序相同的问题。最后,你不能真正依靠基于设备的耦合和访问规则被检查。考虑

的第一件事是某种形式的认证。但猜测你已经考虑过了,它可能不适用于你的应用程序。

我的方法是检查和限制,可以从一定的渊源一天发起查询的数量。根据刷新间隔计算,您希望从后端获取的数据量为10%,并且在超过时停止向该目标位置提供数据,并发送一封电子邮件给管理员关于该事件。他可以研究它,也可以永久禁止客户。

正如评论之前,不防水说下去,但它工作在一个设备无关的方式,而你越让它滥用,越好。

+0

谢谢你的回答。对不起,我只能这么晚回复。 我确实有用户名和密码认证。但是,如何阻止潜在的黑客自己创建帐户?或者你认为什么是认证? – JWKothe

+0

认证是用户名密码,我们在谈论相同。如果您添加电子邮件验证,并且可能还有其他一些功能,那么黑客就会更加难以破解您的数据。因此,您的数据对您来说越有价值,您可以采取更多措施确保只有合法用户才能访问该数据。认证证书,短信验证,个人指纹:-)启用身份验证后,可能会扩展一些超出用户名和密码,您可以提高数据保护 – kroonwijk

2

嗯,我不是一个移动设备开发者,但是如果你没有其他选择,你可以生成一个令牌(一些散列),并且你的API的每个调用都需要根据令牌进行验证?

+1

尽管现在我想到了它,但您还需要处理令牌过期,否则它会像获取有效令牌一样简单。也许Oauth? http://oauth.net/code/ – poulping

+0

问题是,要确保黑客通过逆向工程无法访问此令牌。即使令牌过期,您如何确保只有有效的设备才能获得新的令牌? – JWKothe

2

你可以记录所有每个用户的请求,然后利用GPS坐标将规则应用于用户的运动。例如,设置一个规则,如果坐标建议用户移动速度超过500英里/小时,或者在一天内行驶超过10,000英里,则会触发此类事情。如果规则触发,那么移动是人为的,并且正在扫描;如果规则不起作用,则意味着用户正在按照预期以普通的人为方式移动。