因此,我正在创建一个 JApplet 游戏,并将用户信息保存到 APPDATA 中的 .txt 文件中。有没有更安全的方法来保存他们的信息,不允许他们编辑它来作弊?
问问题
132 次
1 回答
2
基本上,防止作弊的唯一方法是让您控制的服务器计算分数并执行游戏规则。如果您正在编写点对点游戏,可能会有一些协议允许用户在不涉及您的情况下确定其他玩家是否在作弊。 ACM sigecom定期发布有关此类协议的研究。但是,由于小程序安全模型的限制,用户需要授予您的小程序特殊权限才能直接与其他用户对话。
说到这一点,我建议不要“将用户信息保存到 .txt 文件”。 %APPDATA%
仅适用于 Windows,因此打破了“一次编写,随处运行”;并且默认的小程序沙箱不允许读取或写入本地文件,因此您必须对小程序进行签名并说服您的用户它足够特殊,值得如此提升的特权。
但是,对于小程序/服务器通信,您确实有一些选择:
- REST 调用使用
java.net.URL
- SOAP 调用(为此有几个库)
- RMI(仅当服务器是用 Java 编写的)
- 您自己的基于 TCP 的自定义协议
小程序不能直接读写cookies,但是JavaScript可以,而且JavaScript可以调用小程序上的方法。将信息从服务器传递到小程序(但不退出)的最后一种方法是通过 PARAM 标记。您甚至可以传递由服务器私钥签名的初始游戏状态数据,并在 PARAM 标签中编码;这将阻止任何人“编辑”它,尽管如果有关游戏状态的某些内容应该对玩家隐藏但在小程序代码中已知,我想不出任何方法来完全防止作弊。
于 2013-01-24T22:20:53.717 回答