Ofuscar códigos PHP

Al terminar con un sistema web en el que pusimos mucho tiempo y esfuerzo nos topamos con el problema de subirlo a un servidor a nombre de alguien mas, en cuyas manos no queríamos que cayese nuestro trabajo.

El tema es que por un lado PHP es un lenguaje interpretado, esto quiere decir que el código es lo que directamente se ejecuta sin necesidad de un proceso de compilació previo. Por el otro, Javascript es totalmente visible hasta para quienes ingresen a la pagina remotamente. Estas dos características que siempre se las vió como bondades hoy nos ponen una traba a la hora de vender el producto ya que de hacerlo si o si deberemos entregar el código fuente con el que pueden mejorar, conocer y robar el proyecto.

Entonces ¿Qué hacemos al respecto?, la respuesta es ofuscar el código, esto es hacer una serie de modificaciones en el codigo fuente tales que no molesten a la ejecución del programa pero que molesten al intentar leer y entender la lógica usada.

Existen varios programas para lograr esto, me gustó uno en particular (PHP obfuscator) pero tampoco cumplía con todo lo que necesitaba ya que me cambiaba la codificación (utf8) de los archivos y me incluía una línea de cabecera que al trabajar con sesiones tenía que despues borrar a mano. También vi varias opciones de optimización de código donde el proceso daba como resultado código totalmente ilegible, eran muy buenos pero requerían tener instalados algunos controladores y como ya dije no tengo el control del servidor.

Como no tuve mucho tiempo para informarme mas, opté por ofuscar a mano el código y como pude. Pienso hacer (si me da el tiempo) algun programita que haga lo que hice, es algo mecánico. Los pasos para hacer que tu código sea ilegible son: Sacar las identaciones y los saltos de linea, borrar los comentarios, cambiar los nombres de las variable (teniendo cuidado de siempre poner el mismo para la misma variable y de cambiarla en todos los sectores donde se haga referencia, ej: $afiliado podemos llamarla $q67hkj), cambiar los nombres de las funciones, cambiar valores numéricos ( ej.: cuando tengo "45" realizar una operación que tenga ese numero como resultado "((180-20)%2)-20+5").

Todos esos pasos llevarán a tener un código que a duras penas van a intentar descifrar pero que al subirlo funcionará exactamente igual que antes.

Comentarios

Publicar un comentario

Entradas populares