如何保护地理定位Web服务?

时间:2012-11-27 08:16:20

标签: web-services rest cordova sencha-touch-2

我目前正在使用Sencha Touch 2和Phonegap开发移动应用程序。这是一个游戏,你可以在某些地方“办理登机手续”并在每次成功时获得一些积分(如在Foursquare中)。

我想让一个聪明的家伙(例如,已经反编译我的apk的人)无法执行REST网络服务(例如,mywebservice / checkin?access_token = abcde& latitude = 12345& longitude = 6789)使用他的电脑或应用程序之外的任何其他设备。

你知道我怎么能做到这一点吗?

非常感谢,

2 个答案:

答案 0 :(得分:2)

从绝对意义上讲,您所寻找的是不可能的 - 如果设备上的应用程序包含发送有效消息所需的密钥和代码,并且该设备允许用户反编译应用程序,那么任何人理论上都可以对其进行反向工程并发送他们想要的任何消息。

但实际上,不值得担心 - 没有人会付出太多努力,你很可能很容易发现有可疑活动的账户。只需使用https和应用代码中的简单令牌即可阻止任何能够查看网络活动但不会深入挖掘应用代码的人。

答案 1 :(得分:0)

情侣选项(取决于您的具体情况):

  • 将用户信息和应用密钥烘焙到安全API密钥中。这将确保只有有效的帐户持有人才能使用该API。看看OAuth
  • 监控每个帐户或每个连接服务活动,并查找任何可疑模式。例如,如果应用程序在用户思考时间运行,那么您可以预期每秒呼叫次数较少。