块代码从 JS 中的检查元素运行?

问题描述

我有一个 javascript 游戏,人们已经开始通过在检查元素中更改控制台中的 score 变量来进行黑客攻击,有没有办法让它不运行检查元素控制台中的代码

解决方法

我会使用作用域变量,因此攻击者无法从控制台访问它们。

const unscoped = "you can reach me from the console";
console.log(unscoped);

{
  const scoped = "you can NOT reach me from the console";
}
console.log(scoped);

另一种选择是将所有代码包装在一个 Immediately Invoking Function Expression (IIFE) 中:

"use strict";
(function game() {
  //code goes here
  for (var score = 0; score <= 5; score++) console.log("Score: ",score);
})();

console.log("Attacking attempt:");
console.log(score);

编辑:最后一个要求您使用严格模式(在文件开头输入 "use strict";

,

我发现这段代码很有帮助:

<script>
/* To Disable Inspect Element */
$(document).bind("contextmenu",function(e) {
 e.preventDefault();
});

$(document).keydown(function(e){
    if(e.which === 123){
       return false;
    }
});
</script>

参考:

https://www.codingtag.com/how-to-disable-inspect-element

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...