【发布时间】:2014-10-09 22:27:57
【问题描述】:
在制作 HTML5 浏览器游戏时,我不得不考虑这样一个事实,即基于通过开发控制台编辑游戏代码的便利性,这样的游戏无法具有竞争力或价值。
例如像这样: https://www.youtube.com/watch?v=lQaTW3vCqC0
用户改变变量的值,然后继续执行导致游戏直接生效的脚本。
我正在考虑避免此类操作的可能方法:
- 自定义浏览器(类似 Tor 的设置?自定义路由用于检测不受阻碍的浏览器,没有可用的控制台工具)
- 检测开发工具是否打开Find out whether Chrome console is open、How to detect Chrome Inspect Element is running or not?(但这只是Chrome,IE、FF、SF、O呢?
任何见解或额外的想法都会很棒。
【问题讨论】:
-
人们几年前在 NES/SNES 上就这样做了,他们甚至出售了类似于 devtools hack 的书签版本的“游戏精灵”。您需要在服务器端监管和验证用户输入。与游戏一样的订单。
-
JS 使用的是基于引用的安全性,所以如果外界无法引用私有游戏状态,只能调用方法影响它,在 devtools 中是无法更改的。 ex of an unmodifiable value: (function(a){return function(){return a}}(5));
-
@dandavis 我认为如果您在该函数上设置断点,您仍然可以修改
a的值。 -
谢谢大家! Qantas 的链接非常有帮助,而且肯定更符合我正在寻找的解决方案!
标签: javascript html browser console google-chrome-devtools