- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道用户/浏览器手动操作或执行 Javascript 代码有多容易。
我问的原因是我正计划制作一款基于浏览器的游戏。我使用 Javascript 而不是 Java,因为我想让尽可能多的平台都可以访问它。
这是我的意思的一般示例:用户可能会转到游戏页面。几个变量将存储在 JS 中,例如玩家的健康和力量值。玩家可能会选择攻击怪物,结果由几个存储的变量和在战斗中生成的一对变量决定。
那么玩家是否能够操纵存储的变量或调用我的 JS 函数之一(例如导致进行 AJAX 调用的函数)?
如果是这样,我该如何防范呢?我可以通过服务器验证每个操作,但这会占用大量带宽。
最佳答案
按 F12,打开控制台,破解。
全局范围内的任何内容都容易受到修改。
但是,通过将您的游戏逻辑封闭在一个闭包中,它变得更难访问。
所以:
(function() {
// all your game code here
})();
这将阻止对局部变量的访问。只需确保使用 var
正确声明它们即可。
此外,确保混淆代码以使其更难修改,并在接受高分提交等通信时特别小心。我喜欢用现场制作的方法(例如从 base 10 转换为 base 42)来加密我的。
尽可能将玩家的 Action 发送到服务器并确保它们是有效的。如果可以,请在服务器端保持游戏状态 - 部分是为了检查玩家是否遵守规则,但作为副作用,您可以在用户重新加载页面时恢复游戏。
总而言之,您无法阻止作弊者,但您可以让他们很难受。
关于javascript - 用户/浏览器操作 Javascript 有多容易?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10036002/
所以我试图让(例如)输入一些值:1 -2 -3 2 5正数的数量是 5 负数的数量是 -3总计为 3 平均值为 0.6我想让它像这样,但是当我运行它时,它不起作用哪一部分是错误的??? import
我编写了一个使用 OpenCV 的 cvCalcOpticalFlowLK 的程序。它在低分辨率网络摄像头输入上表现良好,但我需要在全高清流上运行它,并在对每一帧进行光流分析后进行重要的其他计算。处理
如果我有一个 ruby 脚本 Daemon,顾名思义,它作为守护进程运行,监视系统的各个部分并能够执行需要身份验证的命令,例如更改权限,是否存在一个简单的方法来拥有第二个 ruby 脚本,比如
我们有一个基于 Ant 和 Ivy 的构建管理系统,它基本上由一个共享的 ant 文件和一组围绕目录结构的约定组成。 我试图克服的一个障碍是相当常见的“递归发布”情况。比如说,我们有 5 个内部代码模
我在嵌入式 Linux 环境中遇到了问题。尝试确定它是否可以由应用程序引起。应用程序导致内核崩溃/锁定或终止 init 有多容易? 最佳答案 非根应用程序应该不可能影响任何一个。 以 root 身份运
我目前正在尝试学习 Nim(进展缓慢 - 无法投入太多时间)。另一方面,为了获得一些工作代码,我想对我正在 ruby 中开发的 Nim 应用程序的各个部分进行原型(prototype)设计。 由于
我是一名优秀的程序员,十分优秀!