Así que estoy escribiendo un juego con JavaScript, y el mayor problema es que cualquiera que lo esté jugando que tenga un conocimiento decente de JS podría abrir mi código fuente, descubrir cómo funciona, luego conecte un game.score = 100000000000000;
en la consola. Sin embargo, parece que aparte de ofuscar el guión, envolver todo en una función anónima funciona.Evitando que el código sea ejecutado por el usuario
(function() {
game_start = function() {
//etc
}
//etc
})();
Cuando intento ejecutar cualquiera de los códigos de la consola de Chrome, se trata con undefined
. Este es el resultado deseado, pero ¿hay alguna forma de evitar mi método que lo haga inútil? ¿O incluso una mejor manera de evitar que se ejecuten cosas desde la consola?
El código del lado del cliente * nunca * puede hacerse realmente incorruptible. –
Y solo podría agregar un punto de interrupción en cromo y cambiar lo que desee. No te molestes en poner mucho esfuerzo en esto. Lo mejor que se te ocurrirá es ofuscar/minimizar el código por lo que es difícil de leer. mira algo como uglifyjs –
Ver http://stackoverflow.com/a/11960187/453277 –