w3schools img attribute javascript html css copy-protection

img - ¿Cuál es la mejor manera de proteger HTML/CSS/JavaScript propietario?



title html (10)

Estoy escribiendo un motor de sitio web robusto, escalable y bastante complejo que usa HTMl, CSS y JavaScript. No quiero que me timen, y me pregunto si hay alguna forma de proteger la fuente para que no se vea en el cliente.

Estoy especialmente preocupado por el JavaScript, y me pregunto si puedo protegerlo alojándolo en archivos separados que no se pueden ver directamente. Tengo el control total de mi servidor web y puedo modificar cualquier configuración para acomodarme.


Bueno, la respuesta popular será "no lo pongas en la web". Sin embargo, puede ofuscar tanto su javascript que, por lo general, nadie se molestará en robarlo. La eliminación de funciones y nombres de variables y similares es un largo camino. En general, será más fácil empezar desde cero.


Haga exactamente lo contrario, libere su código como código abierto con una licencia MIT / GPL. Adjunte su nombre (comercial) al código y sea conocido como el primero en crear la aplicación X. La reputación lo lleva mucho más lejos que los intentos inútiles de "proteger su código".

  1. Por lo general, JS / Html / CSS es bastante fácil para los ingenieros de versiones anteriores, no necesitan mirar su código en absoluto.
  2. Es probable que sus inovaciones JS ya existan y hayan sido escritas en 2001 por otra persona.
  3. Cuanto más complejo es el código, más difícil es robar la propiedad intelectual, especialmente si lo abre.

Realmente no hay ninguna razón sensata para proteger su código en lo que concierne a JS / CSS / HTML, lo mejor que puede hacer es proteger su lógica empresarial al mantenerla en el backend.

Primer ejemplo, podría escribir mi propia implementación de CKEditor (mucha gente lo hace) pero es mucho más fácil usar CKEditor y todos saben qué es, quién lo escribió, etc.

O tome google maps como ejemplo, hay muchos clones, pero solo hay un google maps real. Heck, otros habían escrito una implementación de mapas antes de google, pero google maps es más conocido.

Podría seguir con muchos ejemplos de por qué tratar de proteger su código no solo es tonto, sino que en realidad no es inteligente ... Proteger la lógica de negocios es una cosa, pero en realidad tiene más que ganar al hacer público el código de frontend de fantasía elegante. .


He pensado mucho en este problema y, francamente, no hay mucho que se pueda hacer. Lo mejor que he encontrado es usar un compilador JS.

Teóricamente, y nunca he hecho esto, pero sé que es posible , podría ser posible cargar su js a través de un swf de 1x1 píxeles que a su vez se envió a través de un aleatorizador. Todavía es posible evitar eso, pero se vuelve mucho más molesto. Luego, podrá enviar un código encriptado aes al archivo swf, descifrarlo del lado del cliente (utilizando las bibliotecas as3crypt) y luego escribirlo en el navegador. Dicho esto, a menos que estuviera utilizando el swf para una serie de devoluciones de llamada, todavía tendría el problema de que aún tendría que escribirse en el navegador . Firebug y las consolas js de los otros navegadores permitirían al usuario obtener los js "compilados". Por supuesto, es posible escribir AS3 para registrar la serie de devoluciones de llamada ...

Como he dicho, esto es más hipotético que no, y aunque no tengo dudas de que podría funcionar en situaciones idílicas, Flash es limitado y es necesario tener conocimientos de AS3. El beneficio, por supuesto, es que esta es una forma de llevar js al navegador sin que el usuario pueda leerlo fácilmente.


Independientemente de cómo ofusque el código, cualquiera puede replicar lo que está haciendo con solo verlo. Puede tardar un poco más en escribirlo desde cero, pero no hay mucho que puedas hacer al respecto.

Sus únicas opciones verdaderas para la protección involucran el copyright del código y, potencialmente, la presentación de una patente. Si lo que está haciendo es realmente diferente, entonces una patente es probablemente la mejor manera de hacerlo.

Normalmente, el valor en su aplicación realmente estará en el área de soporte. En otras palabras, la gente lo comprará si siente que estarás cerca el tiempo suficiente para apoyarlo. Sé consciente de esto a medida que lo precios.

Encontrará que habrá algunos que simplemente robarán su código y lo reutilizarán. No se preocupe demasiado por ellos, ya que de todos modos no iban a pagar a los clientes. En su lugar, facilite a sus propios clientes la compra y el uso de sus cosas. Asegúrese de proporcionar apoyo; de ahí es de donde vendrá el verdadero valor.


La reducción de HTML, CSS y JavaScript ayudará un poco, pero la gente siempre puede reformatearlos. Su mejor apuesta es si el contenido enviado a los clientes no es el mismo que el contenido original con el que está trabajando.

Eso se puede lograr mediante:

  • generando tu HTML desde algún framework
  • generando su CSS a través de SASS / LESS , etc.
  • utilizando un compilador de JavaScript en sus scripts (es decir, el compilador de cierre de Google)

Sin embargo, con todo eso, solo puedes ir tan lejos. La compilación de JavaScript hará que sea más difícil seguir sus intenciones originales, pero probablemente no lo suficiente si alguien se compromete a realizar una ingeniería inversa.


No puede ponerlo en Internet o mantenerlo accesible solo a través de una intranet; pero no hay manera de evitar de manera confiable que el cliente acceda a html / css / JS, sin impedir que accedan al sitio en sí.

La ofuscación disuadirá los intentos casuales y la curiosidad, pero no impedirá a un atacante / navegador determinado, ya que todo está implementado en el lado del cliente.


No, no puedes hacer eso.

Todo va al navegador (el cliente). Puede ofuscar uglify, minify o lo que sea, pero al final es un tiro fácil para "cifrar" eso nuevamente.

Tampoco puede ocultarlo, porque desea que el navegador reciba todas sus fuentes. Por lo tanto, incluso si realiza algún movimiento funky como, "cargar javascript con inserción de etiqueta de script dinámico y luego eliminar las etiquetas de script". Bueno, eso podría funcionar para algunos usuarios inexpertos, pero usar una herramienta como Fiddler volverá a mostrar la verdad.


Puedes usar un ofuscador de JavaScript. Hará que el código sea difícil de leer. Todavía pueden "robarlo", pero sería muy difícil entenderlo y, por lo tanto, modificarlo. No hay forma de que puedas ocultar el código completamente.


Realmente no creo que sea posible ocultar el código JavaScript del usuario final, JavaScript se realiza del lado del cliente, no del lado del servidor, lo que significa que es mejor ver el código fuente en texto plano o que un programa de terceros intercepte el navegador, el usuario final, Requiere el código para completar la tarea.

Incluso si está cifrado, en algún momento tendrá que estar sin cifrar para que el navegador complete y muestre la tarea, donde el usuario final obtendrá el código, a menos que tenga un control total y total sobre el usuario final. La computadora que oculta cualquier código que se ejecute del lado del cliente sería imposible.


Simplemente no puedes hacer eso. La ofuscación de javascript y CSS con un minimizador es probablemente lo más cerca que puede estar.