首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在javascript中制作安全的游戏?

如何在javascript中制作安全的游戏?
EN

Stack Overflow用户
提问于 2010-03-30 08:48:14
回答 5查看 3.7K关注 0票数 11

我正在使用javascript开发一些html和css的游戏,我想知道是否有任何方法来保护这个游戏,这样用户就不能只打电话给game.php?result=victory来完成游戏并获得一些积分。

到目前为止,这是我的解决方案。

一个机会游戏的server-side.

  • For

  • ,先从页面中开始,结果已经到位,胜负或松散,然后做一些动画来显示,但是所有的分数和赢/松的东西都是由完成的一个战斗游戏,从javascript调用中得到动作,然后在服务器上做伤害计算、被控者的反应,然后发送数据。。

但最后一个解决方案意味着,每次用户做任何事情时,我都必须发送操作。这可能适用于一个回合的战斗游戏,但我认为它将是慢任何其他类型的游戏。因此,我的问题是,是否有某种安全的方式,我可以准备我的javascript,以确保发送的信息。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-03-30 09:08:55

确保所有计算和验证安全的唯一方法发生在服务器端。几乎所有的网络游戏都是这样做的。客户端永远无法在在线通信中被信任,而且您必须始终确保在服务器端用户确实在做一些有效的事情。(在理论上,在实践中,您必须在一定程度上信任客户,因为延迟补偿和将一些非关键的东西卸载到客户端)。

因此,javascript并不是开发在线游戏的非常好的语言,因为每个动作都需要服务器进行处理和验证。对于其他编程语言来说,这不是一个很大的问题,因为您可以使用TCP/IP为服务器和客户端构建自己的通信协议。但是,对于javascript来说,不存在这样的可能性,因为您必须依赖于HTTP协议和XMLHTTPRequest处理程序,这会导致非常低效率的客户端服务器通信。

就像您说的,您可以始终使用javascript进行界面操作,但是为了安全起见,您仍然需要在服务器端执行大量的操作,这对于需要更多面向动作的控制的游戏来说肯定行不通。所以,如果你需要安全的话,你几乎只能使用基于旋转的游戏。

票数 15
EN

Stack Overflow用户

发布于 2010-03-30 08:53:24

您可以做一些事情来阻止天真的用户,但可能不是每个人。这完全取决于这个人如何“攻击”你的游戏。最后,用户可以使用javascript调试器来查看您的代码到底在做什么,并复制它。即使你把每一个游戏动作都发回来,用户仍然可以复制它。如果你不小心用户可以做什么动作,他们可能会发送回动作,如果他们是用默认的控制方案控制游戏是不可能的。

票数 4
EN

Stack Overflow用户

发布于 2010-03-30 08:54:26

不应该有胜利的网址。在游戏期间,客户端应该发送用户操作,如果他们赢了,服务器将他们重定向到胜利页面。

在胜利页面上,如果有的话,不应该进行任何计算/奖励。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2543881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档