gpt4 book ai didi

java - 应用程序、远程脚本和安全/混淆

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:31:58 25 4
gpt4 key购买 nike

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

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

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

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

我该怎么办?

最佳答案

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

除了与服务器通信的协议(protocol)之外,仍然存在不安全因素。基本上,可以使用三种方法来克服这些问题。

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

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

关于java - 应用程序、远程脚本和安全/混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13465850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com