2012-11-20 29 views
0

我将构建一个虚构的应用程序,以构建我的问题。应用程序,远程sripts和安全/ obfuscation

我写了一种寻宝应用程序,用户获得奖品时,如果他们访问城镇周围的几个位置。实际上,应用程序将获得当前的经纬度,并检查其与“宝藏位置”列表的距离,如果它们位于他们收到通知的任何宝藏位置的10米范围内。

该应用程序将然后做一个http post到一个远程脚本,基本上插入到数据库中。帖子参数将是设备和他们访问的位置的uuid。

攻击者可以轻松看到wireshark并获取脚本的名称以及参数。他们可以走得更远,反编译apk并获得其他方面的信息,例如散列/混淆。然后,他们可以只用卷曲按照他们喜欢的方式张贴庸俗的文章,这样游戏就会被非作弊者破坏。这是一个永远不需要真正解决的问题,因为在我编写的所有应用程序中,总是有数据不敏感,我不介意它暴露给公众。

我该怎么办?

回答

1

您可以做的最好的想法是以安全的方式发送数据。无论采用什么方法,使用HTTPS都是更好的选择。这有效地防止了窃听者,它是互联网上任何安全通信背后的基本技术。

除了与服务器通信的协议之外,还存在不安全感。本质上,有三种方法可以解决这些问题。

  1. 玩家的位置可以以某个周期性的间隔发送到服务器。如果服务器距离其中一个区域足够近,服务器会回应。也许服务器可能包含足够的智能以知道从点A到点B需要时间。
  2. 可以一次将一个位置发送到应用程序。用户的轨道也可以上传,以验证位置是否正确。
  3. 位置可以通过单向函数发送到程序。真正的答案可以发送到服务器。与此相关的问题是需要发现确切的位置才能得到相同的散列值。但是,由于GPS坐标往往只能精确到几米,并且不会给出微不足道的数字,因此可以在当前位置附近测试多个值。单向函数需要一些时间来以有效的方式进行计算,否则对于一个坏人来说,简单地测试城市中的每一平方米来确定哪些工作是可行的,这将是微不足道的。

从安全角度来看,最好的方法是第一个,因为应用程序在任何时候都不知道应该去哪里,直到它到达那个位置。当然,这会使服务器无谓地花费很多次。

+1

ahhhh我认为选项1将解决我的问题,我没有考虑过这样做,trasure hunt位置需要列表实际上在设备上 – brux

+0

提出了第三种解决方案,这可能会更好。 – PearsonArtPhoto

+0

现在感谢解决方案1 – brux