当前位置:  开发笔记 > 编程语言 > 正文

如何在前端游戏中安全地提交高分以防止劫持后

如何解决《如何在前端游戏中安全地提交高分以防止劫持后》经验,为你挑选了2个好方法。

给定客户端游戏(让我们称之为游戏X)和存储高分的服务器端数据库如何在游戏结束条件之后以一种只有在游戏中才能完成的方式将高分安全地汇总到服务器实际上是玩过(因此防止劫持后).

鉴于此问题,我在这里提出了一些想法

**在游戏开始时发送一个会话ID,该会话ID在给定的时间后到期,然后发送到服务器进行验证

问题是,这可以通过请求启动ID然后只是伪造分数来轻松利用

**游戏中发布到服务器的检查点,以验证此人是否正在玩游戏

再一次,这可以通过一些狡猾的脚本来合成



1> CodesInChaos..:

上传游戏重播并验证服务器上重播的分数.当然,这仅适用于您的游戏支持重放的情况.

至少要创建一个关于正在发生的事情的粗略记录并应用一些合理性检查.

您还应该添加一些游戏一致性检查.否则我将使用像ArtMoney这样的工具并在游戏中改变分数.

但最终,如果用户编写机器人,它会变得非常困难.



2> Wladimir Pal..:

您无法阻止客户端被操纵.它由播放器控制,他可以对客户端应用程序逻辑进行微妙的更改,这些更改在服务器端无法检测到.我所知道的唯一解决方案是将所有用户操作发送到服务器(在游戏结束时或在用户正在播放时连续发送)并让服务器验证它们(重新计算得分).如果动作导致用户声称已达到的分数,则接受分数.如果操作与分数不匹配 - 拒绝.生成逻辑上一致的虚假动作将更加困难.然而,它不会阻止所有作弊技术(谷歌的"瞄准代理",类似的东西也可能在你的游戏中).

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有