Tengo un juego de JavaScript que la gente ha comenzado a piratear cambiando la variable de puntuación de la consola en el elemento de inspección, ¿hay alguna manera de hacerlo para que no se ejecute el código de la consola del elemento de inspección?

0
LlamaButt 7 may. 2021 a las 23:18

2 respuestas

La mejor respuesta

Usaría variables de ámbito, por lo que el atacante no puede acceder a ellas desde la consola.

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

Otra opción sería envolver todo su código en una Invocar inmediatamente la expresión de función (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);

EDITAR: el último requiere que use el modo estricto (escriba "use strict"; al comienzo del archivo)

1
Jacob Lockwood 7 may. 2021 a las 20:51

Encontré este código que puede ser útil:

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

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

Referencia:

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

-1
Ahmed Alhameli 7 may. 2021 a las 20:23