首页 > 解决方案 > 检测用户何时在浏览器中执行 JavaScript

问题描述

我目前正在开发一个完全基于浏览器的游戏(a la Cookie Clicker),并且我正在尝试将用户利用可见的 JavaScript 来欺骗他们的游戏保存的可能性降到最低。为了便于解释,让我们看一个假设函数;

let user = {
    money: 0
};

function addMoney(amount) {
    user.money += amount;
}

如果这在我的游戏中是一个真正的功能,那么任何用户都可以简单地打开开发者控制台,输入addMoney(1e100),然后立即破坏我潜在玩家群之间竞争的可能性。

我想知道是否有任何方法可以禁用外部 JavaScript 输入(无论是通过开发人员控制台还是通过javascript:()在地址栏中使用注入),如果这样的事情不存在,是否至少可以检测到外部 JavaScript 而不是由网站本身在内部执行的 JavaScript?

标签: javascriptbrowserconsoledeveloper-console

解决方案


别说了:

如果一个“骗子”足够坚定(和熟练),你不会阻止他们,但是混淆/缩小代码会使它变得更加困难并阻止他们中的绝大多数——当然是那些随意的。有很多可用的工具可以做到这一点,而且很容易做到。

这是一个非常好的使用:
https ://developers.google.com/closure/compiler/


推荐阅读