Foros del Web » Programando para Internet » Javascript »

JavaScript Obfuscator

Estas en el tema de JavaScript Obfuscator en el foro de Javascript en Foros del Web. Hola a Todos...bueno les cuento he estado validando opciones de minificar y obfuscar mi codigo javascript que es bastante alto dentro de mi aplicacion y ...
  #1 (permalink)  
Antiguo 21/02/2012, 09:54
 
Fecha de Ingreso: febrero-2012
Mensajes: 6
Antigüedad: 12 años, 2 meses
Puntos: 0
JavaScript Obfuscator

Hola a Todos...bueno les cuento he estado validando opciones de minificar y obfuscar mi codigo javascript que es bastante alto dentro de mi aplicacion y encontre aparte de muchos mas este que os menciono en el Tema http://javascript-source.com y me parece muy bueno sin embargo quisiera escuchar vuestras opiniones sobre lo que piensan de la herramienta y si es tan segura como aseguran y podemos garantizar que nuestro javascript este protegido y no se pueda volver a su estado original, os comparto otro link donde encuentro opciones muy interesantes y all parecer muchas con licencia GPL http://compressorrater.thruhere.net

Quisiera que debatieramos el tema y podramos obtener lo mejor.

Saludos.
  #2 (permalink)  
Antiguo 21/02/2012, 15:08
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: JavaScript Obfuscator

buenas,
usa el sentido común. ¿el navegador puede leer un código ofuscado? es decir, si le das todo ese código desordenado que ningún humano puede entender, ¿lo entendera el navegador? la respuesta es no porque así es como esta hecho la implementación de javascript. javascript solo entiende código legible. por tanto, no hay forma que puedas proteger un código mediante ofuscación. lo único que eso hace es complicar la posibilidad de obtener el código fuente -pero aún siendo posible- más agregar algo de carga al navegador para interpretar el códifo ofuscado. sin embargo, un minimizador es distinto. el minimizador no ofusca, sino que reduce el tamaño de archivo eliminando caracteres innecesario y/o cambiar los identificadores a nombres más cortos. nota: esto no hace que el código se interprete más rápido ni mucho menos protege el código, simplemente reduce el tamaño y por tanto la transferencia toma menos tiempo.
  #3 (permalink)  
Antiguo 21/02/2012, 16:27
 
Fecha de Ingreso: febrero-2012
Mensajes: 6
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: JavaScript Obfuscator

Cita:
Iniciado por zerokilled Ver Mensaje
buenas,
usa el sentido común. ¿el navegador puede leer un código ofuscado? es decir, si le das todo ese código desordenado que ningún humano puede entender, ¿lo entendera el navegador? la respuesta es no porque así es como esta hecho la implementación de javascript. javascript solo entiende código legible. por tanto, no hay forma que puedas proteger un código mediante ofuscación. lo único que eso hace es complicar la posibilidad de obtener el código fuente -pero aún siendo posible- más agregar algo de carga al navegador para interpretar el códifo ofuscado. sin embargo, un minimizador es distinto. el minimizador no ofusca, sino que reduce el tamaño de archivo eliminando caracteres innecesario y/o cambiar los identificadores a nombres más cortos. nota: esto no hace que el código se interprete más rápido ni mucho menos protege el código, simplemente reduce el tamaño y por tanto la transferencia toma menos tiempo.
mmmm validando si veo que el codigo ofuscado, minificado y comprimido lo interprete el navegador y hace lo que debe de hacer....como recomendacion si eres colaborador ten mas tacto para decir las cosas.

Saludos.
  #4 (permalink)  
Antiguo 21/02/2012, 17:09
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: JavaScript Obfuscator

creo que no entendistes. ¿cuál es la idea de ofuscar el código? en teoría, "ocultar" el código original ante cualquier lector y agregar un falso sentido de seguridad al código. te muestro un ejemplo con una aplicacion que se llama Packer. el código original y ofuscado:
Código:
// original
console.log("hola javascriptero, me puedes ver?");

// ofuscado
eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('1.0("2 3, 5 4 6?")',7,7,'log|console|hola|javascriptero|puedes|me|ver'.split('|'),0,{}))
evidentemente, el código original no se ve a simple vista en el ofuscado. pero tiene un problema y es por ello que es un falso sentido de seguridad: el decifrador para obtener el código original esta presente. tan simplemente puedo cambiar la función eval por console.log y en la consola javascript obtengo el código original. entonces, ¿se puede quitar el decifrador? no, porque si le dejas el código ofuscado sin el decifrador (o en este caso, desempaquetador), javascript no sabría que detrás de eso hay otro código para interpretarse. o en el peor de los casos -como sucede con otros ofuscadores- el código oculto es totalmente inentendible para javascript sin el decifrador, de modo que genera error y tampoco se interpreta el código que originalmente se intenta.

miralo de esta forma, ofuscar es casi como compilar. el código fuente es convertido a otro resultado. sin embargo, el código compilado en la mayoría de los casos se puede ejecutar por si mismo sin que un código decifrador esté presente. en javascript, no existe esa noción. es por ello, que un código ofuscado javascript no lo entiende y para ello debe estar presente el decifrador (obligado).

te recalco que un minimificador no es lo mismo que un ofuscador. en ningún momento dije que javascript no comprende un código minimizado. mira por ejemplo el código fuente de cualquier jquery con la extensión *.min.js. el código parece estar ofuscado, pero no lo esta. simplemente se le ha removido los caracteres inútiles sin corromper el funcionamiento del código original. es decir, se puede interpretar (navegador) pero resulta imposible para un humano. en fin, minimificar y ofuscar son dos técnicas con propósitos totalmente distintos.
  #5 (permalink)  
Antiguo 21/02/2012, 17:43
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: JavaScript Obfuscator

Hola:

Cita:
Iniciado por jagalzap Ver Mensaje
...como recomendacion si eres colaborador ten mas tacto para decir las cosas...
Es curioso que en un foro donde se comparte tanto conocimientos como experiencias, se hagan preguntas de este tipo... y más curiosa me ha parecido esta respuesta o "reproche". Releí la respuesta más de una vez porque no podía comprender esa recomendación.

Verás, primero vi la pregunta y por ella en sí pensaba no abrir el mensaje, ya que son cuestiones que no me gustan (también había temas que me parecían más interesantes), pero al ver que participaba nuestro colaborador, lo abrí pensando que tal vez su respuesta iba a ser instructiva, como en tantas ocasiones, por eso mi sorpresa ante la respuesta .

Luego pensé que habría alguna especie de mensaje subliminal, o tal vez un guiño que solo pudiera entenderlo un lingüista, pero en tal caso hubiera escrito bien el mensaje.

Sobre el tema en sí, creo que si el código es lo suficientemente bueno para no querer que lo copien, en vez de poner trabas sería más productivo hacer una presentación con bombo y platillos... pero ¿Crees realmente que valga la pena?

Personalmente sé que códigos míos son usados en distintas páginas, y más que sentirme preocupado por ello, realmente me siento orgulloso... bueno, si insistes en perder el tiempo en ese asunto, debes entender que en una comunidad donde se acostumbra a compartir conocimientos, códigos y opiniones; que las respuestas no te ayuden mucho.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 22/02/2012, 07:20
 
Fecha de Ingreso: febrero-2012
Mensajes: 6
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: JavaScript Obfuscator

Hola a todos y agradeciendo vuestros comentarios....excelente la respuesta zerokilled y hago referencia sin lugar a dudas que os sos muy buenos en el tema y esa era la idea poder compartir nuestros puntos de vista del tema y entiendo perfectamente lo que comentas, ahora el punto por que he llegado al tema....

Como les comente validando encontre este y algunos mas y me llamo mucho la atencion el comparativo que se realiza por ejemplo con la libreria jquery.min.js la cual con el algoritmo utilizado por este software pasa de pesar 97 kb a pesar 64 kb reduciendo en un porcentaje conciderable la libreria y por ende la trasnferencia del archivo.

Entiendo zerokilled que minificar y ofuscar son dos tecnicas diferentes lo que veo es que este software minifica, ofusca y comprime el codigo

Otra cosa que acoto con lo que dice zerokilled cuando el codigo esta ofuscado y el ejemplo que presenta, cuando este se ofusca se debe de realizar un eval lo cual me hace una pregunta si esto al momento de interpretarlo por el navegador puede representar un esfuerzo mucho mayor para de este o si por el contrario seria lo mismo que incluir la libreria solo con el codigo minificado mas no ofuscado, ademas de mis reservas de utilizar eval.

Ahora respondiendo a caricatos excelente tú respuesta y quiero que tengas presente que al citar la respuesta de zerokilled me parece que estoy en todo mi derecho de no estar del todo de acuerdo con la forma de decir las cosas al igual que tu las dices, todos la tomamos de forma diferente, alli mi recomendacion para que como Tú mismo lo dices todos compartamos el conocimiento de la mejor manera y por ende con el mayor respeto posible para con los demas y a veces no herir suseptibilidades, ten presente todos somos diferentes.

Ahora la verdad no es que no se dese compartir el codigo o el conocimiento, lastimosamente en algunos casos se necesitan tener precaucion o sensibilidad con algunos pedazos del codigo y es bueno tener herramientas o alternativas para manejarlo para el caso javascript, vuelvo al mismo ejemplo jquery, modernizr y muchas mas que la lectura del code es compleja obviamente estas estan minificadas no ofuscadas como lo dice muy claramente zerokilled lo cual pone mas compleja la lectura humana y por consiguiente la interpretacion del mismo.

Entonces la recomendacion seria minificar no ofuscar ???


Saludos.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:16.