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

Block code run from the inspect element in JS?

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

我发现这段代码很有用:

<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

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

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";