【问题标题】:Is there a way to safely save data so that players cannot change it? [duplicate]有没有办法安全保存数据,让玩家无法更改? [复制]
【发布时间】:2016-03-22 06:24:49
【问题描述】:

我正在制作一款需要保存玩家积分、高级货币和等级的 Android 游戏。问题是我希望将信息保存在播放器的设备中,但我不希望他们能够更改它。我将如何以这样的方式将整数写入文件,以使玩家无法找到该文件并轻松更改它?在玩家的设备上存储诸如高级货币之类的东西是否安全,还是我需要建立一个数据库?

我在我的游戏中使用 C# 和 Unity,所以我想要的不仅仅是 Android。这样,我不必为了在另一个平台上发布它而重新编程,例如 iOS。

另外,我不能真正做一个数据库,因为我必须租一个,而且我没有钱。 :3

【问题讨论】:

  • 100% 的统一开发人员使用这个assetstore.unity3d.com/en/#!/content/10395 它非常便宜,而且是最好的。你根本不能使用普通的 PlayerPrefs,PlayerPrefs 甚至没有基本的安全性是 Unity 的荒谬之处之一。大家就用ACTK,享受吧
  • (当然,在许多情况下,您可能需要更高的安全性,通常是基于服务器的。请注意,这也远非万无一失,MITM 攻击和欺骗是微不足道的。)

标签: c# android unity3d


【解决方案1】:

如果您信任客户的溢价货币价值(或客户存储的任何价值,真的),它可以并且将会被利用。您希望将这些值存储在服务器上并让客户端请求它们。

【讨论】:

  • 谢谢!客户没有网络怎么办?
  • 您可以暂时保存该值,以便客户端看到该值,但只有在他们有连接并且服务器可以验证其合法性时才允许购买。
  • 初学者应该只使用其中一种愚蠢的货币系统,例如“soomla”或其他
【解决方案2】:

如果不将这些数据存储在设备之外,如果文件丢失,您打算如何退还/重新任命玩家资金? Best way to secure Android app sensitive Data? 的这篇文章讨论了 linux 文件系统在 android 上的限制,以及具有 root 权限的用户如何访问几乎任何文件。我强烈建议您找到一个免费的解决方案,该解决方案可以随着您的应用赚钱而扩展。(即 Azure、亚马逊等)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-05
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2021-02-01
    • 1970-01-01
    相关资源
    最近更新 更多