我目前正在开发一个基于浏览器的游戏(la Cookie Clicker),并且我试图将用户利用可见的JavaScript欺骗他们的游戏存档的可能性降至最低。为了说明起见,我们来看一个假设函数;
let user = {
money: 0
};
function addMoney(amount) {
user.money += amount;
}
如果这是我游戏中的真实功能,那么任何用户都可以简单地打开开发者控制台,键入addMoney(1e100)
,立即破坏我潜在玩家群中任何竞争的可能性。
我想知道是否有任何方法可以禁用外部JavaScript输入(通过开发人员控制台还是通过地址栏中的javascript:()
注入使用),以及是否不存在这种情况,至少可以检测外部JavaScript,而不是由网站本身在内部执行的JavaScript?
答案 0 :(得分:1)
不再说话:
如果一个“骗子”被充分确定(并且熟练),您不会阻止它们,但是使代码模糊不清/使代码杂乱无章将使它变得更加困难并阻止绝大多数代码-当然是临时代码。有很多可用的工具可以做到这一点,而且很容易做到。
这是一个非常好的使用方法:
https://developers.google.com/closure/compiler/
答案 1 :(得分:1)
除了此处提到的混淆选项之外,还有Jscrambler之类的JavaScript安全工具可以在检测到任何篡改尝试时破坏代码。他们的an example与您所描述的相同。