Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/05/2008, 19:24
isra00
Invitado
 
Mensajes: n/a
Puntos:
Re: Ofuscacion de Codigo PHP

Lo que hace el ofuscador de Zend y los demás ofuscadores, es entre otras cosas:

- Convertir el código a base64.
- Cambiar los identificadores (variables, funciones, clases....) a nombres tipo a00034 o v011001010110, de tal manera que resulta infumable para un humano.
- Eliminar saltos de línea y tabuladores.
- Eliminar comentarios.
- Ofuscar el código HTML y las cadenas.

Al menos, es todo lo que hace obfuscPHP, el ofuscador que yo uso. Con todo esto, el código generado es código ejecutable, es decir, de ingeniería inversa nada, ya que no hay código ensamblador compilado ni nada por el estilo. Ahora bien, en términos prácticos, interpretar, para una persona, un código PHP ofuscado es imposible (si no lo fuese, entonces los fabricantes de ofuscadores se quedarían sin trabajo). Así que si ofuscas tu código (te invito a que lo pruebes por ti mismo e intentes leer el código ofuscado), puedes estar tranquilo de que nadie te lo robe (a no ser que quiera hacer variaciones mínimas y que sea un verdadero gurú).

Con respecto al rendimiento, bueno, quizá según el nivel de ofuscación el código puede ser un pelín más lento, por poner un ejemplo: la mayoría del código se convierte a base64, se almacena como string y se ejecuta con la función eval(). En el código original no tenías esto, y el script ofuscado obliga al motor de ejecución de PHP a "tragarse" ese larguísimo string (partiéndolo en trozos más pequeños) y a ejecutar la función eval() que, originalmente no habías escrito.

Como todo, depende del proyecto que se trate. Si vas a ponerlo en el servidor local de un cliente, como, personalmente, es mi caso, y no suele haber mucha gente conectada a la vez (20 como mucho), entonces la ofuscación no es un problema. Pero si se trata de un sitio web muy recurrido entonces quizá el caché y otros métodos de optimización del rendimiento no basten (en este caso deberías tener el control del servidor, para que nadie pudiese ver el código).

Espero haberme explicado, y sobre todo, haber sido de ayuda.
Un abrazo,
Isra.