2012-03-08 15 views
11

La gente ha estado diciendo tantas buenas palabras para HTML5, pero una de mis principales preocupaciones es cómo proteger el código fuente de mi juego.Protección de las fuentes del juego HTML5

esencialmente ..

  1. Cómo impedir que otros utilicen nuestro propio motor de juego desarrollado (que es una gran activos)
  2. Cómo evitar que otros descarguen el juego y alojarlo en otra plataforma
  3. Cómo ocultar el detalle de las llamadas de API del servidor en las fuentes, por ejemplo nuestro propio marcador API, moneda virtual API, etc.
+1

Tienes respuestas que básicamente dicen "No puedes detener esto", pero ten en cuenta que eso solo se aplica a los componentes _client-side_ de tu juego. Los componentes _server-side_ son seguros. Para que las personas puedan ver las solicitudes/respuestas a/desde su API de servidor, pero no podrán ver cómo se implementa la API en el servidor. – nnnnnn

+0

@nnnnnn, para ser perfectamente claro, puede obtener mucha información de cómo funcionan las llamadas API y si realmente lo desea, puede basarse en eso. Una gran cantidad de juegos en línea (como WoW, etc.) tienen servidores no oficiales. Puede ocultar la implementación exacta, pero no la funcionalidad. – zatatatata

+0

Si usa node-WebKit compilará su juego a un exe en Windows. – zachdyer

Respuesta

11

"No se puede" es la respuesta a las 3 preguntas. Lo único que puede hacer es ralentizar a quien esté interesado en su código mediante su uso, pero finalmente, si alguien quiere usar su código, no hay nada que pueda hacer al respecto.

2

En última instancia, no hay protección de los activos en la web. Si puede verlo en un navegador, puede descargarlo con curl. Si la protección de los activos es una gran preocupación para usted, no recomiendo HTML y JavaScript.

Puede ocultar su código para evitar el robo casual y usar SSL para evitar el espionaje, pero las personas trabajadoras aún podrán acceder a estos activos de otras maneras.

+0

SSL no evitará el espionaje. Los proxies HTTP (como Fiddler2) le permitirán configurar un hombre en el medio para que pueda descifrar todo el tráfico enviado desde su computadora (a través del proxy local) al host. –

0

Si se minimizan su código js hará que sea mucho más difícil pero no imposible reutilizar

+0

Minificar su código js hará que sea mucho más difícil de reutilizar pero no imposible puede embellecer el js directamente en las herramientas de desarrollo de cromo, por lo que debe minimizar por el hecho de ser – mpm

0

No hay formas físicas para proteger a copiar los archivos digitales. Muchas industrias lo han intentado. Muchos han fallado. Lamentablemente, muchos continuarán intentando y continuarán fracasando, pero a veces las empresas parecen tener problemas para aprender de sus errores pasados.

Lo mejor es no enfocarse demasiado en eso. Concéntrese en sus clientes

4

Puede ejecutar su juego en una PC con pantalla táctil en un gabinete de hardware seguro (como en un aeropuerto) y no hacer que sea accesible a través de Internet. Quizás no sea la respuesta ideal que estabas buscando.

+2

+1 por estar fuera de la caja –

+2

+1 por ser tanto dentro de una caja como afuera de la caja – Tackle

7

Yo personalmente uso Google Closure Compiler con compresión avanzada para obfuscate mi código (descargar el archivo Java, no utilice la versión en línea!). Se necesita un esfuerzo adicional para preparar el código, pero está muy bien documentado y una vez que haya entendido cómo funciona el compilador, es muy fácil cumplir con sus reglas. No solo ofusca tu código, sino que también lo optimiza para la velocidad de ejecución y el tamaño del archivo.

para ser claro - sí, los otros tipos tienen razón, no hay protección definitiva ... bla bla. PERO: alguna vez ha tratado de hacer cabezas o colas de google googles? Lo intenté y fallé. Si usa nombres de clase ofuscados y muy pocas cadenas en su código, será muy difícil de leer, lo que significa que puede llevar meses dependiendo de la complejidad de su código.

Para las llamadas de API, las cosas son diferentes. el cifrado no funcionará, ya que el código de descifrado estará visible en el javascript; incluso con la ofuscación, esa parte será difícil de ocultar ya que el código AJAX siempre se parece un poco ... Además, el cifrado consume tiempo de CPU que probablemente necesite en otro lugar. El aplazamiento es de una manera, pero al final, las llamadas a la API serán más o menos legibles.

7

La ofuscación de su código de JavaScript podría ser un paso importante. La ofuscación puede hacer que el código sea tan complejo que ninguna persona en su sano juicio intentará hackearlo.

He estado usando jscrambler.com con buenos resultados. Dicho esto, la ofuscación no resolverá todos los problemas. Los usuarios aún podrán ver todo el tráfico intercambiado entre el navegador y el servidor. Entonces sabrán cómo funciona la API y cómo usarla.

Para evitar esto, puede utilizar el cifrado de mensajes mediante javascript. Esto podría ser útil para asegurar el contenido. Encontré una publicación en stackoverflow que analiza el cifrado mediante javascript: Javascript AES encryption. Hay algunas implementaciones que se pueden usar que tienen un bajo impacto en el rendimiento.

Por último, pero no menos importante, todas las entradas deben revisarse por completo en el lado del servidor. Toda la lógica que se puede implementar en el lado del servidor debe permanecer allí.

Cuestiones relacionadas