0

我将构建一个虚构的应用程序来构建我的问题。

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

然后,该应用程序将对基本上插入数据库的远程脚本进行 http 发布。发布参数将是设备的 uuid 和他们访问的位置。

攻击者可以轻松地监视wireshark 并获取脚本的名称和参数。他们可以更进一步,反编译 apk 并获得其他东西,例如任何散列/混淆。然后,他们可以随心所欲地使用 curl 随意发帖,而对于非作弊者来说,游戏将被毁掉。这是一个从未真正需要解决的问题,因为在我编写的所有应用程序中,总会有不敏感的数据,我不介意将它暴露给公众。

我该怎么办?

4

1 回答 1

1

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

除了与服务器通信的协议之外,仍然存在不安全性。从本质上讲,有三种方法可以克服这些问题。

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

从安全的角度来看,最好的方法是第一种,因为应用程序在到达该位置之前永远不知道它应该去哪里。当然,这会不必要地多次 ping 服务器。

于 2012-11-20T02:47:57.027 回答