Con todo el alboroto reciente sobre JavaScript y HTML5 en reemplazo de Flash, quería saber: ¿cómo sería posible proteger el código js del lado del cliente? Por supuesto, es posible ofuscarlo, pero eso solo lo haría un poco más difícil. Además, para los juegos que envían puntajes altos al servidor, ¿no sería increíblemente fácil modificar esos puntajes antes de enviarlos al servidor? Sé que incluso los archivos Flash se pueden descompilar, pero se pueden ofuscar y la descompilación flash no es tan fácil como modificar los datos en JS; podría hacerse fácilmente usando un complemento como Firebug. Me gustaría conocer las opiniones de todos sobre esto.Código de seguridad/protección en JavaScript
Respuesta
JavaScript, al ser analizado en el cliente, nunca es 100% seguro. Habrá siempre para descubrir qué hace. Hace unos días, incluso he visto una herramienta que descomprime paquetes de JavaScript, por lo que lo único que puedes hacer es usar nombres de variables "feos" (o hacer que un empaquetador de JavaScript transforme tus nombres de variables "buenos" en cortos/feos/sin sentido)
Para proteger los resultados del juego, debe mover parte de la lógica del juego al servidor para que el cliente no pueda enviar resultados arbitrarios.
Resumiendo: No ponga secretos en el código javascript y no confíe en nada que provenga del cliente, no importa si es de un formulario o si se genera/envía a través de javascript.
Usted dice que para el juego que envía puntajes altos al servidor sería demasiado fácil modificar el javascript y forzar la solicitud?
Excepto en el caso, cuando utiliza alguna criptografía en el cliente, es la forma más fácil de forzar dicha solicitud, ni siquiera analiza la secuencia de comandos, sino que envía una solicitud falsa. Todo lo que envía entre el servidor y el navegador puede verse fácilmente en la computadora, analizarse y modificarse.
- 1. Código de JavaScript paralelo
- 2. Compresión de código JavaScript
- 3. código JavaScript Analizar en C#
- 4. Organizando el código javascript
- 5. php run código de JavaScript
- 6. Código de JavaScript Sugerencias de organización/Revisión de código
- 7. código de clave de Javascript =/= código de char
- 8. Ejecutando código Javascript "in situ" en Chrome?
- 9. Uso del código JSP en JavaScript
- 10. ¿Qué es este código en Javascript?
- 11. Cómo evaluar el código Javascript en Python
- 12. malicioso código javascript en mi página web
- 13. Código de sombreador de webgl en línea en javascript
- 14. Técnicas para agrupar código JavaScript
- 15. ¿Cómo organizas tu código Javascript?
- 16. Javascript: ¿Qué hace este código?
- 17. Código de JavaScript dentro de UpdatePanel
- 18. cómo ocultar el código Javascript
- 19. Cómo proteger el código Javascript?
- 20. cómo escribir código JavaScript dentro de php
- 21. código de JavaScript para el objeto matemático
- 22. ejecución de código serverside desde JavaScript
- 23. Javascript Código QR lectura de librerías
- 24. Cómo eliminar código muerto de Javascript
- 25. Chrome: ejecución automática de código Javascript?
- 26. ¿Mejor formateador de código fuente para Javascript?
- 27. referencia JavaScript de código subyacente (C#)
- 28. ¿Código de JavaScript ofuscado con valores binarios?
- 29. Javascript expresiones regulares de código postal canadiense
- 30. Limpiar el código de JavaScript repetitivo
Gracias. Incluso si muevo parte de la lógica del juego, el algoritmo para generar datos para enviar al servidor sigue siendo muy abierto. Además, ¿no sería esto un factor importante en la adopción de HTML5 especialmente con respecto a los juegos? ¿Por qué/Cómo las personas predicen que el flash está en camino de salida? – BlueSilver
Flash es casi tan inseguro como javascript. Hay buenos descompiladores ActionScript por ahí e incluso si eso no fuera posible, aún podrías oler la solicitud enviada al servidor. Además de eso, muchos juegos flash son solo por diversión, no por recompensas, etc. por lo que no importa en absoluto si la gente hace trampa allí o no. – ThiefMaster
Perdón por preguntar esto repetidamente, pero ¿no sería esto un factor importante para la adopción de HTML5? Además, olfatear la solicitud no es tan fácil como ver la fuente. Además, hay portales de juegos flash en los que obtener puntajes altos podría llevarte dinero, por lo que infringir sería importante. – BlueSilver