1

我目前正在使用 Sencha Touch 2 和 Phonegap 开发一个移动应用程序。这是一款您可以在某些地方“签到”并在每次成功时获得一些积分的游戏(如在 Foursquare 中)。

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

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

非常感谢,

4

2 回答 2

2

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

但实际上,这并不值得担心 - 没有人会为此付出太多努力,而且您可能可以相当容易地检测到具有可疑活动的帐户。只需使用 https 和来自应用程序代码的简单令牌来阻止任何可以看到网络活动但不会深入研究应用程序代码的人。

于 2012-11-27T10:24:54.807 回答
0

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

  • 将用户信息和应用程序密钥烘焙到安全 API 密钥中。这将确保只有有效的帐户持有人才能使用 API。看看 OAuth
  • 监控每个帐户或每个连接服务活动并查找任何可疑模式。例如,如果应用程序在用户思考时间内运行,那么您预计每秒的调用次数会很少。
于 2012-11-27T10:32:43.667 回答