【问题标题】:How to protect js from custom events如何保护 js 免受自定义事件的影响
【发布时间】:2012-04-05 08:32:16
【问题描述】:

我正在用 canvas 和 easeljs 在 JavaScript 上编写游戏,我想知道是否有任何方法可以保护它。例如,我使用stage.Addchild(index) 将新对象添加到舞台。只需编辑 DOM,我就可以附加新的事件处理程序并触发它,例如 <body onclick="stage.removeChild(0)">,这将一一删除所有舞台对象。

我正在考虑过滤所有即将发生的事件并检查触发它的原因。但我不知道该怎么做,可能有更好的方法来做到这一点......请指出正确的方向......

【问题讨论】:

  • 我不得不问 - 为什么要打扰?这是一个严肃的问题。
  • 我没有给你一个很好的答案,我可以说让你的 js 通过像Google Closure 这样的东西会让你在运行时更难阅读和重写。主要想指出,如果你用javascript制作游戏,你真的应该签出gameQuery。为浏览器编写完整的基于精灵的游戏变得轻而易举,甚至具有一些安全性来确保或帮助减少作弊。
  • 因为玩家可以更改某些属性并作弊
  • @SpYk3HH 谢谢你的建议

标签: javascript html5-canvas dom-events easeljs


【解决方案1】:

保护 Javascript 的最佳方法是将所有初始化代码放入闭包中,而不是针对全局变量公开任何内容。

但是,这仅提供了一些防止运行时命名空间冲突的保证,并且旨在用作良好的开发实践。

您不能信任在客户端运行的任何代码;对于反作弊行为,您需要检查服务器端的传入输入。用户可以 100% 控制浏览器中运行的内容,这包括以他们希望的方式修改代码的控制权。

【讨论】:

  • "对于反作弊行为,您需要检查服务器端的传入输入。"我可能错了,但是要在服务器端检查它们,我需要从客户端向服务器发送查询,并且可以在浏览器中捕获和修改任何查询。
猜你喜欢
  • 1970-01-01
  • 2015-11-19
  • 2010-10-01
  • 2015-10-26
  • 2021-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多