HOWTO · PHP
Los 8 mejores ofuscadores de código PHP
Este tutorial demuestra los ocho mejores ofuscadores de código en PHP.
En esta página
La ofuscación de PHP hace que el código fuente sea más difícil de inspeccionar al reescribirlo en una forma menos legible, pero no puede garantizar que el código siga siendo ilegible, impedir su copia ni proporcionar seguridad real. Las herramientas siguientes difieren en lo que transforman, a qué versiones de PHP están dirigidas y cómo se licencian.
Este artículo compara ocho ofuscadores conocidos de PHP para que puedas elegir el que mejor se adapte a tu proyecto.
Qué puede y qué no puede hacer la ofuscación de PHP
La ofuscación reescribe código PHP funcional para que un lector ocasional tenga dificultades para seguirlo. Entre las transformaciones típicas se incluyen cambiar el nombre de variables, funciones, clases y espacios de nombres por identificadores sin sentido, eliminar comentarios y sangría, y distorsionar el flujo de control. El objetivo es aumentar el esfuerzo necesario para comprender el código, no hacer que su comprensión sea matemáticamente imposible.
Dado que PHP aún debe poder ejecutar el archivo, un script ofuscado siempre es reversible en principio. Una persona decidida puede decodificar tablas de identificadores, recorrer el código con un depurador o comparar el resultado ofuscado con el original. Por lo tanto, la ofuscación desalienta la copia oportunista, pero no es cifrado y por sí sola no puede impedir la reutilización ni el robo. Para obtener una protección real también se necesitan condiciones de licencia y, cuando corresponda, una entrega desde el servidor que nunca distribuya el código fuente.
La ofuscación también se diferencia de tres conceptos con los que suele confundirse. La minificación o compactación solo elimina espacios en blanco y comentarios, y a veces acorta nombres para reducir el tamaño del archivo; la menor legibilidad es un efecto secundario, no el objetivo. La optimización del rendimiento cambia el código para que se ejecute más rápido, algo que la compactación no hace. Y los controles de seguridad, como el almacenamiento de contraseñas mediante hash o la protección de secretos, nunca deben basarse en la ofuscación, ya que cualquier cosa que el entorno de ejecución de PHP pueda leer, un atacante también podrá leerla con el tiempo.
Una advertencia más se aplica a toda la lista: las descripciones de funciones, las afirmaciones sobre versiones de PHP y las notas de licencia siguientes reflejan lo que cada proyecto indica en su documentación, y algunos de estos proyectos no se han actualizado durante años. Verifica el estado actual de un repositorio antes de adoptar su herramienta.
Compara ocho ofuscadores de PHP
YAK Pro – Ofuscador de PHP
YAK Pro, abreviatura de "Yet Another Killer Product", es un ofuscador de PHP de código abierto que aplica un amplio conjunto de transformaciones:
- Puede reorganizar aleatoriamente las instrucciones del código.
- Puede eliminar elementos innecesarios como la sangría y los comentarios.
- Utiliza instrucciones
gotopara ocultarif,else,else if,for,while,do-whiley construcciones similares. - Puede cambiar el nombre de cada parte importante del código, incluidas funciones, clases, etiquetas, variables y espacios de nombres.
YAK Pro está disponible en GitHub y puede descargarse desde aquí.
Ofuscador de PHP de Naneu
Naneu está diseñado para código PHP PSR/OOP. A diferencia de muchas herramientas que dependen de la ofuscación basada en eval(), Naneu analiza el código fuente PHP y cambia el nombre de clases, métodos, variables y partes similares del código.
La biblioteca se escribió originalmente para ofuscar el código fuente de una biblioteca privada que no podía compartirse sin protección. Sus características declaradas son:
- Está dirigida a bases de código PHP PSR/OOP.
- Según su documentación, puede ofuscar código escrito para PHP 5.3, 5.4 y 5.5, mientras que la propia herramienta requiere una versión de PHP superior a 5.4 para ejecutarse. Estas son afirmaciones de versión antiguas; confirma la compatibilidad actual antes de usarla.
Naneu está disponible en GitHub y puede descargarse desde aquí.
Eccenux POBS
Eccenux POBS compila código PHP en una forma menos legible. Su documentación reconoce claramente la limitación: el resultado no es infalible y un lector dedicado aún puede adivinar lo que hace una función concreta.
Instalar POBS es sencillo: descárgalo y descomprime el archivo en el directorio del servidor web. Sus funciones declaradas son:
- Puede utilizarse para proyectos grandes.
- La configuración es fácil y no requiere mucha preparación.
Eccenux POBS está disponible en GitHub y puede descargarse desde aquí.
pH-7 Obfuscator
pH-7 Obfuscator es una herramienta de código abierto destinada a proteger código desplegado en alojamiento web compartido, donde ocultar el código fuente del acceso casual es la principal preocupación. Sus funciones declaradas son:
- Hace que el código sea muy difícil de leer.
- Su documentación afirma que admite PHP 5.2 y versiones superiores, una afirmación antigua que conviene verificar con tu entorno de ejecución.
pH-7 Obfuscator está disponible en GitHub y puede descargarse desde aquí.
Xeoncross PHP Compactor
Xeoncross PHP Compactor comprime y ofusca código PHP, pero es principalmente un compactador, no un ofuscador profundo. La compactación elimina espacios en blanco y acorta el código; no acelera la ejecución de PHP, por lo que no debes elegir esta herramienta esperando una mejora de rendimiento.
La herramienta es útil para conocer el tamaño real de un proyecto comparando la cantidad de caracteres necesarios para ejecutar una clase.
Xeoncross PHP Compactor está disponible en GitHub y puede descargarse desde aquí.
smart-php-obfuscator
smart-php-obfuscator es un ofuscador de PHP desarrollado por Weidi Zhang. Sus funciones declaradas son:
- Es de código abierto.
- Busca mantener la sencillez sin dejar de ofuscar eficazmente el código fuente.
- Su documentación afirma que admite PHP 7.0 y versiones superiores, otra afirmación antigua que conviene verificar.
smart-php-obfuscator está disponible en GitHub y puede descargarse desde aquí.
pmaslak/php-obfuscator
pmaslak/php-obfuscator puede utilizarse con fines comerciales y no comerciales, y funciona de forma similar a YAK Pro. Sus características declaradas son:
- Es de código abierto.
- Se distribuye bajo la licencia MIT, lo que simplifica su adopción en proyectos propietarios.
pmaslak/php-obfuscator está disponible en GitHub y puede descargarse aquí.
pl4g4/online-php-obfuscator
pl4g4/online-php-obfuscator es un servicio en línea desarrollado por pl4g4. Subes un archivo PHP, el servicio genera una versión ofuscada y descargas el resultado. Sus funciones declaradas son:
- Es de código abierto.
- Permite descargar la versión ofuscada de tu código PHP.
El proyecto afirma que los archivos cargados se eliminan una vez finalizada la ofuscación, pero esa garantía no está verificada. No subas código fuente privado o propietario a ningún servicio de ofuscación de terceros sin comprobar de forma independiente sus condiciones de tratamiento y conservación; opta por una herramienta ejecutada localmente para cualquier contenido confidencial.
Elige un ofuscador de PHP para tu proyecto
Adecúa la herramienta a tu restricción real en lugar de elegir la que tenga la lista de funciones más larga.
- Estilo de la base de código. Para una base de código PSR/OOP moderna, Naneu está diseñado en torno al cambio de nombre de clases y métodos mediante análisis. Para código antiguo o procedimental, YAK Pro o pmaslak/php-obfuscator aplican cambios más amplios en identificadores y flujo de control.
- Licencias. Si necesitas una licencia permisiva explícita para un proyecto comercial, pmaslak/php-obfuscator está bajo la licencia MIT. Para las demás, revisa tú mismo el archivo de licencia de cada repositorio, ya que una etiqueta de «código abierto» por sí sola no define tus derechos.
- Versión de PHP. Los rangos de compatibilidad declarados —Naneu para objetivos PHP 5.3–5.5, pH-7 Obfuscator para 5.2+ y smart-php-obfuscator para 7.0+— proceden de la documentación de cada proyecto y pueden estar obsoletos. Ejecuta la herramienta en una copia de tu código con la versión de PHP de producción antes de adoptarla.
- Herramienta local frente a servicio en línea. pl4g4/online-php-obfuscator es la opción más cómoda, pero requiere subir tu código fuente. Mantén el código propietario en herramientas locales a menos que hayas verificado el tratamiento de datos del servicio.
- Objetivo. Si quieres reducir la legibilidad, elige un ofuscador real como YAK Pro, Naneu o pH-7 Obfuscator. Si quieres archivos más pequeños o una medición del tamaño, Xeoncross PHP Compactor se ajusta mejor, pero no es una medida de seguridad ni hará que PHP sea más rápido.
Elijas lo que elijas, conserva el código fuente original en un sistema de control de versiones, prueba a fondo el resultado ofuscado —el cambio de nombres puede romper código que depende de la reflexión, las llamadas dinámicas o las convenciones de nomenclatura— y considera la ofuscación como un elemento disuasorio junto con las licencias, no como una garantía de que tu código no pueda leerse ni reutilizarse.