检测用户何时在浏览器中执行JavaScript

时间:2019-03-29 19:10:11

标签: javascript browser console developer-console

我目前正在开发一个基于浏览器的游戏(la Cookie Clicker),并且我试图将用户利用可见的JavaScript欺骗他们的游戏存档的可能性降至最低。为了说明起见,我们来看一个假设函数;

let user = {
    money: 0
};

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

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

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

2 个答案:

答案 0 :(得分:1)

不再说话:

如果一个“骗子”被充分确定(并且熟练),您不会阻止它们,但是使代码模糊不清/使代码杂乱无章将使它变得更加困难并阻止绝大多数代码-当然是临时代码。有很多可用的工具可以做到这一点,而且很容易做到。

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

答案 1 :(得分:1)

除了此处提到的混淆选项之外,还有Jscrambler之类的JavaScript安全工具可以在检测到任何篡改尝试时破坏代码。他们的an example与您所描述的相同。