用于服务器端验证的 JavaScript 事务日志



在编写的客户端 (js( 但存在排行榜等多人游戏元素的游戏中。将用户操作记录到带有时间戳的事务日志中以验证所提交数据的完整性的最佳方法是什么,您将如何验证此日志中的操作?

甚至有必要这样做,还是在这种作弊预防方面编写一个向服务器提交分数并混淆代码的哈希函数就足够了?

编辑 - 游戏说明:

在这个游戏中,你走在一张50格长的地图上。在每个瓷砖上,你都可以遇到敌人/城镇/事件(寻找硬币等(每次到达地图的尽头,都会加载一张难度稍高的新地图。这个难度被保存(在MYSQL数据库上使用PHP(以及玩家和他的从城镇购买的物品。这些物品的功率值取决于它们的属性(dmg/生命值/防御力等(物品的力量被汇总并被保存。

力量、阶段(难度(和用户名是前 10 名玩家的排行榜中显示的内容,按最高功率排序。

一般来说,没有有效的方法来防止客户端作弊。
就排行榜和用户发布他们的分数而言,防止作弊的唯一方法是在后端处理数据,或者至少尝试在那里验证数据。

在发送到服务器之前对数据进行哈希处理无济于事,因为有人可以在哈希之前轻松修改数据。

事务日志无济于事,因为有人可以在将数据提交到事务日志之前轻松修改数据,甚至禁用日志记录。

混淆基本上是通过隐蔽来确保安全性的,这将使您的代码更难被黑客入侵,但绝对不会使其作弊安全。

同样,您永远不能信任来自客户端的任何数据,因此您需要一个后端来控制整个游戏过程或验证数据。

最新更新