如何计算页面上加载的所有JS文件的哈希(以验证html5游戏运行时)



我做了html5游戏,用户有时可能会尝试改变以获得更好的高分。

我如何在游戏的开始(和运行时)计算整个JavaScript游戏(使用Construct2制作的)的哈希值,以便我可以比较用户是否在运行时进行了任何更改。

如果有什么重要的话,游戏就会在 iframe 内运行,并在游戏结束后发送高潮。

正如我在评论中所说,散列您的来源不是一种有效的反黑客攻击。

防止作弊的最强方法是在服务器端运行引擎,并使用预测客户端/权威服务器策略验证每个操作。

预测客户端

客户端引擎的行为就像不涉及服务器一样,仅当分数发生变化以及一些附加信息(例如游戏时间、位置、玩家状态等)时才发送数据(例如)。 客户端在每个游戏会话上接收存储在服务器端的唯一令牌以识别它。

权威服务器

服务器一旦收到分数和其他信息,就可以对这些数据运行验证,例如:

  • 球员位置有效吗?(例如:与敌人对齐射击)
  • 玩家的状态是否有效?(例如:它能用一颗子弹击落敌人吗?
  • 比分与游戏时间合适吗?(例如:玩家在2s时可以得到10亿的分数吗?
  • 等等
  • 等等

在服务器端进行验证后,您可以在完成后协调游戏状态或通过令牌使游戏无效。

最新更新