Volver |

Ofuscación de código

Introducción

La ofuscación es una técnica que permite modificar el código de tal forma que el mismo sea más difícil de interpretar para una persona pero luego de aplicada sigue siendo equivalente al código original en cuanto al objetivo que se quiera cumplir.

En otras palabras, el resultado generado por la ejecución del código fuente debería ser el mismo en un código ofuscado y en un código que no lo esté. Sin embargo, el código ofuscado debe ser más difícil de interpretar por un ser humano.

Existen técnicas de ofuscación en las que la ejecución del código fuente sí varía.

Ofuscación del código HTML y JavaScript

Ofuscar el código HTML puede tener sentido aunque evidentemente es extremadamente simple leer el código fuente real gracias a que la mayoría de los navegadores te muestra actualmente en la ventana para desarrolladores el código HTML cargado actualmente.

 

Ofuscación de código JavaScript

Para ofuscar código JavaScript se puede utilizar esta herramienta: https://obfuscator.io/

Ofuscación de IDs

Para ofuscar un ID numérico autoincremental se puede utilizar un string equivalente que evite detectar la secuencialidad de ese ID. Una herramienta interesante es: https://hashids.org/ que tiene implementaciones para diferentes lenguajes.

Por ejemplo, en una página web, el navegador web observa un string alfanumérico y cuando éste viaja al backend, el mismo es transformado al ID numérico.

 

 

A continuación se muestra un diagrama de secuencia que explica el funcionamiento de esto:

FrontEnd->BackEnd: id=wxtU4G BackEnd->Ofuscador: getId(wxtU4G) Ofuscador->BackEnd: 53 BackEnd->BaseDatos: getDatosRegistro(53) BaseDatos->BackEnd: datosRegistro53 BackEnd->FrontEnd: datosRegistroFrontEndFrontEndBackEndBackEndOfuscadorOfuscadorBaseDatosBaseDatosid=wxtU4GgetId(wxtU4G)53getDatosRegistro(53)datosRegistro53datosRegistro .

En este artículo participaron: