javascript - 检测用户何时在浏览器中执行 JavaScript
问题描述
我目前正在开发一个完全基于浏览器的游戏(a la 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/
推荐阅读
- c# - 如何将数据存储在数组的单行上?
- javascript - 为什么我在发出 get 请求时会收到未处理的 promise 错误
- excel - 将 .xlsm 文件转换为 .xls 并使用 Excel VBA 通过 Outlook 发送附件
- javascript - 如何覆盖 Google Cloud Tasks Node.js 客户端的重试配置
- postgresql-10 - 撤消在另一个函数中调用的函数事务
- android - Android BottomNavigationBar 每个选项卡的唯一图标色调列表?
- mercurial - 如何从自定义挂钩中读取配置设置?
- java - 如何与加密的 SQS 队列交互?KMS 密钥访问不起作用
- python - 哪种文件处理方式更好:'r' + 'a' 或 'r+'?
- android - 可绘制的正确位置不正确