如何防止在JavaScript游戏中作弊?

时间:2015-02-13 13:41:00

标签: javascript php ajax anti-cheat

首先,我知道没有100%肯定的解决方案,而且这个问题不止一次被问过。

这些帖子是我的最爱firstsecond,但如果没有足够有效的解决方案,它们太旧了。

我正在用JavaScript,HTML5和CSS3创建社交游戏,我使用canvas。 出于安全原因,我想知道如何检测用户是否正在使用他的调试工具。为了防止用户试图改变一些值,速度等..但我可以用PHP处理大部分这些东西。

我的游戏是实时游戏。

这是一些反作弊想法的非详尽清单:

  • 每次在服务器端获得积分时检查值,看它是否一致。
  • 加密每个值,然后在服务器端解密。
  • 为每个值设置不同的哈希值,并在每次用户加载游戏时随机使用。
  • 缩小并编码我的整个脚本文件。
  • 检测用户是否正在使用调试器,并在游戏过程中检查他是否正在调整窗口大小(但他可以在加载游戏之前打开调试器......)。
  • 让页面提交完整的游戏重播并检查是否存在不一致。
  • 对于服务器的每个请求,发送脚本并将其与原始脚本进行比较,以防用户修改它。
  • 将脚本缩小到我的html页面内,对于每个请求,发送回原始脚本以替换实际的脚本。
  • 在客户端放置计时器,在需要时在服务器端发送时间以检查值是否一致(为此,您可以计算得分是否与您设置的最短时间相匹配,例如:时间是在47秒时,得分为1000,对于你的游戏在40秒和50秒之间,得分不能超过1500,所以在这种情况下一切都很好。

当然还有更多的解决方案可以列出。

对于每个解决方案,他都可以访问他的调试工具。 没有正确的方法可以完全阻止使用调试器工具。 因此,没有办法阻止100%用户不作弊。

至少你可以通过将所有这些解决方案组合在一起来做出几乎反作弊。 即使你没有一个完整的工作系统,只有一小部分用户会作弊,你可以确定你会找到关于如何欺骗你的游戏的tutoriel,所以你将能够找到解决方案它发生的时间。

0 个答案:

没有答案
相关问题