如何在JavaScript中制作安全游戏?

rna*_*aud 10 javascript php security

我正在使用javascript一些html和css进行游戏,我想知道是否有任何方法来保护游戏,以便用户不能只是调用game.php?result = victory来完成游戏并获得一些积分.

截至目前,这是我的解决方案.

  • 对于一个机会游戏,启动页面结果已经到位,赢或松,然后只是做一些动画来显示它,但所有得分和赢/松的东西都是在服务器端完成的.

  • 对于战斗游戏,只需从javascript调用中获取操作,并进行损坏计算,服务器上的操作员的反应,然后发送回数据.

但最后的解决方案意味着每次用户做任何事情时我都必须发送动作.这可能适用于转弯战斗游戏,但我认为对任何其他类型的游戏都会放慢速度.所以我的问题是,是否有某种安全的方式我可以准备我的JavaScript来保护发送的信息.

Rit*_*iur 15

使其安全的唯一方法是在服务器端进行所有计算和验证.这就是几乎所有在线游戏的完成方式.客户端永远不可信任在线通信,您必须始终确保在服务器端用户实际上正在做有效的事情.(理论上无论如何,在实践中你必须相信客户端有点滞后补偿并将一些非关键的东西卸载到客户端).

出于这个原因,javascript不是开发在线游戏的非常好的语言,因为每个操作都需要由服务器处理和验证.对于其他编程语言而言,这不是一个大问题,因为您可以使用TCP/IP为服务器和客户端构建自己的通信协议.但是,对于javascript,没有这种可能性,因为您必须依赖HTTP协议和XMLHTTPRequest处理程序,这会导致非常低效的实时客户端 - 服务器通信.

就像你说的,你总是可以在javascript中使用界面,但为了安全起见,你仍然需要在服务器端执行大量的工作,这肯定不适用于需要更多操作导向控制的游戏.因此,如果您需要安全性,那么您几乎只能使用基于回合的游戏.