¿Se puede ofuscar el código de JavaScript de front-end?

Si

JavaScript puede ofuscarse, por lo que es considerablemente difícil y poco práctico para otra persona inspeccionar su lógica interna sin la fuente original.

Sin embargo, debe comprender qué hace la ofuscación y para qué sirve (y para qué no sirve).

Utilice la ofuscación para la protección contra robo (limitada)

Si le preocupa que su competencia le robe su código, una buena ofuscación puede aumentar drásticamente el costo de la ingeniería inversa, hasta el extremo de que esencialmente se hace más difícil hacerlo, que reescribir todo desde cero .

Si la ofuscación logró este objetivo, puede considerarse exitoso en la protección de su código, ya que el siguiente paso de protección concierne a la ley de derechos de autor y a un abogado de todos modos, ya sea que su derecho de autor haya sido infringido por la competencia haciendo ingeniería inversa de su código, o simplemente “tomando prestado” su idea de la aplicación y la mayoría de los detalles (ver también Umbral de originalidad).

Es importante tener en cuenta que la ofuscación no hace que sea teóricamente imposible restaurar el código original, solo lo hace considerablemente difícil y costoso en la práctica .

En la mayoría de los casos, un desarrollador competente tendrá una buena idea de cómo podría funcionar su código simplemente mirando la aplicación en sí , a menos que tenga un algoritmo revolucionario (en cuyo caso, si es práctico, será mejor que ponga esa parte en un servidor para garantizar su protección contra la inspección, dada la seguridad suficiente del servidor).

NO use ofuscación por seguridad

La ofuscación simplemente reduce su código a un desorden insondable, pero ese código aún debe ejecutarse en las máquinas de los usuarios, con todos los datos necesarios disponibles, y como tal, puede inspeccionarse indefinidamente para encontrar secretos: claves API privadas, contraseñas, claves de cifrado son todo detectable con relativa facilidad.

Nunca incluya ningún tipo de información confidencial en el código del cliente, y espere que la ofuscación lo proteja: ni siquiera la verdadera compilación de código de máquina puede lograr este tipo de protección (por ejemplo, C ++, aunque depende de debatir si hace que el proceso sea lo suficientemente difícil o no no).

Aunque la ofuscación técnicamente no brinda seguridad (por las razones mencionadas anteriormente), puede dificultar (pero definitivamente no es imposible) que un atacante escanee el sistema en busca de vulnerabilidades, ya que requiere un esfuerzo adicional para comprender partes del código.

El hecho de que estés usando la palabra “Ofuscación” en lugar de “Minificación” me preocupa un poco.

No hay forma de ofuscar el código del lado del cliente de tal manera que no pueda ser entendido por alguien lo suficientemente determinado. Si está buscando proteger alguna propiedad intelectual de su código, entonces la minificación (u “Ofuscación” como se refiere a usted) probablemente no sea la respuesta. Cualquier código JS minimizado puede ejecutarse a través de un embellecedor (como este: embellecedor de JavaScript en línea) para que sea más fácil de entender. Con tiempo suficiente, un atacante determinado puede descubrir el funcionamiento completo.

La minimización es el acto de acortar los nombres de variables / métodos, eliminar espacios en blanco, etc. para reducir el tamaño de los archivos JS. Puede funcionar en un proyecto AngularJS de cualquier complejidad, ya que su efectividad no depende de la complejidad (para la mayoría de los propósitos y propósitos).

Si desea minimizar convenientemente sus archivos JS, es probable que esté buscando una biblioteca como gruntjs / grunt-contrib-uglify. Aquí hay un tutorial para mostrarle cómo usarlo: Uso de Grunt para minimizar y comprimir activos

JS y CSS definitivamente deberían minarse, ya que esto reducirá el tamaño y acelerará la entrega de HTTP.

YUI Compressor debería ser la opción rápida y segura para los programadores Javascript junior – medium. Es la herramienta de biblioteca gratuita, se puede integrar en muchas plataformas y programación.

Si no es un programador, puede probar este servicio gratuito en línea utilizando YUI Compressor, puede comprimir JS y Minify y comprimir CSS gratis en línea. Es fácil de usar, no necesita descargar o instalar ningún software, solo necesita copiar su código js y css en la página web, luego puede recuperar el código minificado. Es muy fácil y sencillo.

Si desea editar su código javascript y css, primero debe desminificar el archivo js y css a un formato legible por humanos, y luego modificar el código js y css.

Sí. Google es bastante bueno en eso.

Siempre que minimice y ubique toda su fuente de producción, debería ser suficiente.

La semilla angular de Yo viene con una buena configuración inicial de Grunt, minificación y uglificación incluidas.