tutorial texto proteger ofuscar escapar encriptar descargar como codigo javascript hosting three.js webgl

javascript - texto - webgl firefox



¿Es posible ocultar/proteger los datos utilizados en webGL? (3)

Aprendí un poco de webGL, usando principalmente three.js. Cargué archivos .obj y los dibujo en 3D.

He puesto mi proyecto en línea en algo como: www.midominio.com

No me importa que la gente mire mi código fuente a través de su navegador, pero los archivos .obj que estoy mostrando son de alguien que no quiere regalarlos.

Soy un novato total con respecto a esto.

Como mi código fuente está disponible para todos, supongo que los archivos .obj también están disponibles para todos. Entonces, ¿es posible ocultarlos o asegurarlos para que nadie pueda descargarlos?


Estoy bastante seguro de que no puede proteger ningún archivo si desea acceder y usarlo en JavaScript / WebGL. Deben analizarse en un formato utilizable en algún momento para que el navegador / javascript pueda mostrarlos. Tienes dos opciones:

1) Ofuscación. No creo que esta sea una buena opción, ya que al final alguien siempre puede usar Firebug y otras herramientas para acceder a una representación algo útil de sus archivos. Puede hacerlo un poco menos fácil mediante el cifrado o cifrado de datos del lado del servidor y la reconstrucción de cosas en Javascript. O simplemente usando formas no convencionales para cargar y representar archivos.

También puede decodificar / descifrar en código de sombreado, que sería un paso más difícil de robar. Pero eso probablemente se aplica solo a las texturas.

2) Haz que los archivos sean menos útiles. Para que alguien reutilice sus archivos OBJ, probablemente quieran importar los modelos al software de su elección y hacer algo. No puede evitarlo, pero puede quitar los archivos de información adicional que hace que los archivos sean más fáciles de trabajar. Esto hará que los archivos sean menos deseables para cualquier ladrón potencial.

Lo hago por razones completamente diferentes, pero mi uso principal de WebGL implica exportar modelos de Sketchup a Collada y mostrarlos en WebGL. Mi código de exportación hace algunas cosas, que como efecto colateral hacen que el modelo exportado sea difícil de trabajar. Esto incluye hacer que todas las instancias de los componentes sean únicas (¿de-instancias?), Explotando todos los componentes y grupos en geometría simple, triangulando todas las caras, eliminando la geometría oculta, etc.

Sería un PITA para llevarlo de vuelta a Sketchup para su edición sin el archivo original ... especialmente porque los modelos con los que trabajo, por naturaleza, dependen en gran medida de la creación de instancias de componentes y grupos. Pero aún así, nada impide que alguien robe la geometría "tal como está".


Si alguien puede descargarse al navegador, entonces está en la computadora del usuario.

Puede dificultar la lectura de archivos, pero solo ralentizará la captura de los datos .obj. Si alguien quiere hacerlo, entonces él / ella puede eventualmente hacerlo. La clave de descifrado debe estar siempre en la computadora del cliente. Entonces solo puedes ralentizar el proceso. Entonces la pregunta es "¿Qué tan difícil y qué tan complejo quieres hacer tu código de lectura .obj y vale la pena el esfuerzo?" Simplemente agregando un byte extra al principio del archivo probablemente sea suficiente para que los archivos no se abran como en el software de modelado.

Le sugiero que eduque a alguien sobre cómo funciona Internet y simplemente diga que no es posible o que valga la pena tratar de hacerlo y evite las implementaciones de homebrew sobre cómo hacer que la lectura de datos sea más difícil.


Vea las otras respuestas, pero esto no es exclusivo de WebGL. CUALQUIER programa en CUALQUIER idioma tiene este problema. Una vez que los datos están en la computadora, teléfono, etc. del usuario, las personas pueden obtener los datos. Ejemplos:

  1. leyendo los datos de una aplicación de iOS
  2. leyendo los datos de una aplicación de PC nativa

Por otro lado, puede seguir las técnicas mencionadas anteriormente. Usa tu propio formato Masajea los datos para que sea mejor para renderizar, lo que generalmente hace que sea malo para la edición.

También puede, por supuesto, hacer que sus archivos requieran que alguien inicie sesión en su sitio web para leerlos, en primer lugar, de forma similar a la forma en que gmail, facebook, documentos de Google, etc. requieren que inicie sesión. Eso no les impedirá obtener los archivos una vez que se hayan registrado pero. También puede configurar su servidor para que solo su aplicación pueda descargar los archivos . De nuevo, eso no evitará que el usuario obtenga los archivos una vez que la aplicación los haya descargado (o que hayan insertado JavaScript a través de una extensión de navegador), pero evitará que se roben su ancho de banda de otros sitios vinculados directamente a sus datos.