我目前正在开发一个完全基于浏览器的游戏(一个 Cookie Clicker(,我试图尽量减少用户利用可见的 JavaScript 来欺骗他们的游戏存档的可能性。 为了解释起见,让我们看一个假设的函数;
let user = {
money: 0
};
function addMoney(amount) {
user.money += amount;
}
如果这是我游戏中的真实功能,任何用户都可以简单地打开开发者控制台,键入addMoney(1e100)
,并立即破坏我的潜在玩家群中的任何竞争力。
我想知道是否有任何方法可以禁用外部 JavaScript 输入(无论是通过开发人员控制台还是通过在地址栏中使用javascript:()
注入(,如果这样的事情不存在,是否至少可以检测外部 JavaScript 而不是由站点本身内部执行的 JavaScript?
不要再说了:
如果一个"作弊者"有足够的决心(和熟练(,你不会阻止他们,但混淆/最小化代码会使它变得更加困难,并阻止他们中的绝大多数 - 当然是随意的。有许多可用的工具可以做到这一点,而且很容易做到。
这是一个很好的使用:
https://developers.google.com/closure/compiler/