Buenas prácticas
Cómo aplicar la ofuscación de forma eficaz: qué proteger, qué dejar intacto y qué no puede hacer la ofuscación por ti.
Recomendaciones
Ofusca solo tu propio código.
No apliques ofuscación VM a scripts de terceros, bibliotecas ni polyfills. Ya están minificados, y la ofuscación solo los hará más lentos.
Usa el modo comment para una protección quirúrgica.
Establece
vmTargetFunctionsModeen'comment'y marca solo las funciones sensibles con/* javascript-obfuscator:vm */en lugar de protegerlo todo. Consulta Selección de funciones específicas.Prueba a fondo después de ofuscar.
Prueba siempre el código ofuscado en tu entorno de destino. Algunas opciones pueden romper el código de formas sutiles. Las defensas en tiempo de ejecución también reaccionan ante la automatización de pruebas y los depuradores; consulta Pruebas y CI.
Excluye las rutas frecuentes de la ofuscación VM.
Usa
vmExcludeFunctionspara bucles de animación, renderizado en tiempo real o código que se llama con mucha frecuencia. Solo coincide con nombres de funciones de nivel raíz (con Async Executor, las funcionesasyncmás externas); para mantener fuera de la VM el código crítico anidado, usa el modo comment y marca solo las funciones que necesitan protección.
Aviso de seguridad crítico
Nunca guardes claves de API, secretos ni credenciales en el código JavaScript del frontend, ni siquiera con ofuscación.
La ofuscación aumenta el esfuerzo necesario para entender y modificar el código, pero no es cifrado y no puede garantizar que la ingeniería inversa sea imposible. El runtime sigue siendo observable en un entorno que controla el atacante, así que un atacante decidido siempre puede extraer datos del código que se ejecuta en el cliente. Mantén los secretos y las decisiones de seguridad determinantes en el servidor.
En la práctica:
- Guardar los secretos en tu servidor backend
- Usar variables de entorno en el servidor
- Enrutar las llamadas a la API a través de tu backend para ocultar las claves
- Usar tokens de corta duración emitidos por tu servidor
¿Qué deberías proteger?
La ofuscación VM es ideal para:
- Algoritmos propietarios y lógica de negocio
- Código de validación de licencias (comprobaciones en el cliente)
- Comprobaciones antimanipulación y de integridad
- Lógica de juegos y mecanismos antitrampas
- Implementaciones de funciones premium
- Lógica de cálculo de precios
Compilación y publicación
Ofusca tu salida compilada y empaquetada como último paso de la compilación; consulta Compatibilidad de ejecución para el pipeline de compilación. Mide en tu propio código el coste del preajuste que elijas, como se describe en Elegir preajustes. Ejecuta las pruebas funcionales contra una compilación de pruebas y después valida el artefacto de publicación separado que realmente distribuyes, como se describe en Pruebas y CI.
