HTML5多人游戏安全解决方案

ina*_*ina 12 security html5 canvas multiplayer

现在HTML5中有经典平台甚至3D fps游戏的几个整洁的画布演示,下一步可能是尝试开发多人HTML5游戏.HTML5套接字支持使这个相对简单,但是浏览器中的任何人都可以看到客户端源,HTML5前端多用户游戏的基本游戏安全功能有哪些解决方案 - 例如能够防止伪造高分提交

Rei*_*man 16

简单的答案是:您无法信任来自客户端的数据,这意味着高分提交不能来自客户端.

由于代码客户端可供任何人检查,因此无法信任客户端发送服务器的数据.即使您使用每用户加密密钥(这是可能的)加密数据,用户也可以简单地在浏览器中更改您的代码并更改它发送到服务器的值.

由于您的游戏是多人游戏,因此如果服务器生成所有评分事件,这可能是可能的.如果服务器生成所有评分事件,则客户端永远不会将评分数据发送到服务器,这意味着高分数据不能伪造.

你仍然需要处理作弊,这更具挑战性,但这是另一个问题......

  • @ina:kylotan说的话.没有"生成分数"事件.有一个"玩家采取了这个行动"事件.如果操作导致生成分数,则在服务器上生成分数.这意味着您的客户端只不过是服务器生成的事件的显示 - 实际上没有在客户端上执行的游戏元素,它们都发生在服务器上并在客户端上呈现. (2认同)
  • 你在想它.可以这样想:客户端发送"玩家攻击<其他玩家>"消息并启动"玩家攻击"动画.服务器决定玩家是否命中并发送"你击中!" 或者"你错过了!" 消息回到客户端.服务器跟踪生命值,健康状况等.当一个玩家死亡时,服务器向死亡玩家发送"你死了"的消息,向杀死玩家发送"你杀了他们"消息.所有的统计数据和记录保存在服务器上,客户端除了显示UI之外什么都不做.同样的想法适用于其他游戏类型(扑克等). (2认同)