Una vez que acabamos de programar nos gustaría que nuestro código no se ande replicando y siendo usado por otros, robando nuestro trabajo sin embargo como PHP no se compila, nuestro código fuente queda desprotegido.
He probado algunos ofuscadores de código que hacen el código muy ilegible y dificil de entender, ojo eso no es igual que codificar simplemente lo hacen poco comprensible. Este muy sencillo ofuscador online me parece genial para evitar que pirateen las clases que conforman nuestro script, pueden dare un vistazo aqui
Requiere el uso de la librería gzip, la cual la tienen prácticamente todos los servidores en Internet así que por ahí no hay problemas, veamos un ejemplo:
Código Original
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?php class MySQL{ private $conexion; private $total_consultas; public function open(){ if(!isset($this->conexion)){ $this->conexion = (mysql_connect(_host,_user,_password)) or die(mysql_error()); mysql_select_db(_database,$this->conexion) or die(mysql_error()); } } public function consulta($consulta){ $this->total_consultas++; $resultado = mysql_query($consulta,$this->conexion); if(!$resultado){ echo 'MySQL Error: ' . mysql_error().'<br>'.$consulta; exit; } return $resultado; } public function fetch_array($consulta){ return mysql_fetch_array($consulta); } ?> |
Codigo Ofuscado
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php // Este archivo es protegido por la ley del derechos de propiedad literaria. La ingenieria inversa de este codigo se prohibe estrictamente. eval(gzinflate(base64_decode(' dZJNTsMwEIXXqdQ7DFKkOGroAWhJV+xggTiA5TgT xVKI0/EEGiHujp20tIRW8sKen2/es73LF9tdV3fL hW6Uc/AyvL0+fy0XHZkPxQixti0ejG03FzG2rBrp M65vWLmQ6ovGaKj6VrMvBtthK1LPMZW4M84hi5hr 4+7zEy8N2WgWhEcQ74Pbj/AWNQtZW8eZ7B1SJjuv 8NNSmaZgCUqDx2IksiTS1AuJpojDxnfLshCyVKwK 5TCbC7jJ+B7X3NLJrohPu0sHsytZrYKWmHA8ltYb m8bse6ThjPgnKrSFOzu3jlMi1LWFZHwdeApSHyCB NfzRvk62BeXJ+pe+GTsPhsPGW4oIuacWzvDNVasV sq6lIlLDzO0RMI29XjYhd+Ff/QA= '))); ?> |
Creo que queda lo suficientemente incomprensible o no? 🙂
Lo genial de este ofuscador es que la clase sigue funcionando normalmente aún usando los includes de siempre sin añadir códigos extras. Hay otros ofuscadores que cambian los nombres de las clases y las funciones y todo deja de funcionar a menos que lo apliques al script completo.
Hola, una pregunta, eso se puede desincriptar no?
Yo no se porque, se confunden tanto entre la palabra ofuscar y encriptar, ofuscar es quitar espacions en blanco quitar los saltos de linea, reducir el codigo lo mas que se pueda e incluso en casos mas drasticos cambiar los nombres de funciones a nombres totalmente sin sentido, ESO ES OFUSCAR!!! lo que tu estas haciendo es encriptar, el el cual coges encriptas con un algoritmo de encriptacion ( valga la redundancia ) un codigo, y luego en modo inverso lo desencriptas para poderlo visualizar, este ejemplo que das ademas de de no ser ofuscacion esta encriptado de tal manera que cualqueir persona que tenga un 20% de conocimientos de programacion lo desifraria facilmente.
Hace tiempo he estado desarrollando un ofuscador y lo he estado probado en un sitio web http://allsoftware.freetzi.com
Si quieren tener una version personal y gratuita de mi ofuscador me pueden escribir al email: fsellitems@gmail.com.
Aqui no veo nada de ofuscamiento y si quieren comprovarlo nada mas cambien la funcion ‘eval’ por un ‘echo’ y de nuevo tendran el codigo original, lo unico que se hace es un proceso de compresion y luego de descompresion el codigo en realidad esta intacto.
Bueno, estaría bien si ofuscara.
Sustituyendo el ‘eval’ por un ‘echo’ queda todo clarito, clarito.
Alguien podria aportar con una mejor solución.
se tiene que poder hacer ilegible nuestro codigo PHP. pf 🙂
La proteccion de un codigo PHP se puede hacer por medio de la encriptacion de un PHP o la ofuscacion de un PHP , que son dos cosas distintas
La diferencia entre Encriptar y Ofuscar un PHP, radica que generalmente encriptar un php, involucra utilizar funciones en base64 y eval, lo cual no es muy recomendable porque cualquier persona con conocimientos basicos de php podria usar las funciones inversas para decodificar el codigo base64 y el eval y tu codigo php quedaria al descubierto y facilmente te lo robarian 🙁 ademas de eso el encriptar unicamnete recarga el servidor que tendria que usar memoria y recursos para decodificar el codigo y luego correrlo
Por eso mismo, lo mejor es hacer una buena ofuscacion del codigo PHP, una buena ofuscacion, consiste en hacer que el codigo sea completamente ilegible, y virtualmente dificil de entender y de modificar, pues los sitios que han sido bien ofuscados de manera profesional, no hay forma de poderlos desencriptar, unicamente pueden ser reutilizados por el programador dueño del script quien tendria una copia sin ofuscar, y luego unicamente tendria que volverlo a ofuscar.
Por esa razon te recomiendo no publicar libremente un script encriptado con base64 ni con la funcion eval porque estarias regalando tu script a cualquier persona, donde el unico engañado serias tu, por lo mismo en vez de encriptar te recomiendo hacer una ofucacion profesional de tu codigo php, la cual consistiria en escramblear las funciones, convertir todas las variable en largas e ilegibles cadenas de caracteres al azar, remover comentarios, eliminar lineas en blanco, hacer ilegibles los textos, quitar espacios, etc…
Un excelente sitio que nosotros utilizamos para ofuscar nuestros codigos PHP de manera profesional, sin encriptarlos con base 64 para no afectar la velocidad del funcionamiento del script, y haciendo los scripts php completamente ilegibles de entender, de alterar y de modifica es: http://www.ofuscarphp.com el cual permite probar gratis el servicio de ofuscacion con todas las caracteristicas de una ofuscacion profesional, o cual nos ha servido para instalar phps en servidores de otros clientes con la clausula previa de no otorgar nuestro codigo fuente.
Espero les haya servido esta informacion, saludos !
Con solo entrar en esta pagina http://ddecode.com/phpdecoder/ copiar y pegar el codigo encriptado en menos de 1 segundo tenemos el codigo fuente, asi que no resulta de gran ayuda