BYTEHIDE SHIELD PARA NODE.JS
Node.js Obfuscator
Protege tu código Node.js frente a ingeniería inversa, copia y manipulación. ByteHide Shield ofusca tu JavaScript de servidor con la CLI.
Empezar
CLI
npm install -g @bytehide/shield-cli
shield protect "src/**/*.js" --token YOUR_TOKENInstala la CLI globalmente y protege cualquier archivo o glob de Node.js con un único comando. Añádelo a tu build script para que cada release salga protegida.
Guía completa en la documentaciónGratis con una cuenta ByteHide
La primera vez que se ejecuta, Shield pide un project token que lo conecta con tu cuenta. El paquete es gratuito.
Consigue tu token gratisCómo funciona
Cómo ofuscar código Node.js
El código Node.js se puede ofuscar como un paso dentro de tu build. Tres pasos.
Paso 01
Instala la Shield CLI
Instala @bytehide/shield-cli de forma global o como dev dependency.
Paso 02
Añade tu project token
Crea una cuenta gratis en ByteHide, obtén tu token y pásalo a la CLI o a un archivo de configuración.
Paso 03
Protege tu código
Ejecuta shield protect sobre tus archivos compilados. Añádelo a tu build script para que cada release salga protegida.
Por qué ofuscar
Por qué ofuscar código Node.js
El código Node.js no corre en el navegador, pero igualmente se distribuye. En el momento en que tu código sale de tus servidores, puede ser leído.
- El código Node distribuido puede leerseLas herramientas CLI, los paquetes npm, las apps de escritorio construidas sobre Node y el software auto-alojado llevan tu JavaScript a la máquina de otra persona. Allí puede ser inspeccionado.
- Tu lógica de negocio y tu licenciamiento viven en el códigoEl código de servidor suele contener comprobaciones de licencia, algoritmos propietarios y lógica de integración. Al ser legibles, pueden saltarse o copiarse.
- La ofuscación protege el código que no puedes mantener en tus servidoresPara todo lo que llega a un cliente o a un dispositivo, la ofuscación es lo que se interpone entre tu lógica y un atacante.
Ejemplo
Ve la ofuscación de Node.js en acción
La ofuscación se entiende mejor cuando la ves. Aquí tienes un módulo Node.js pequeño antes y después de que Shield lo proteja.
const crypto = require('crypto');
function validateLicense(key) {
const expected = process.env.LICENSE_SECRET;
const hash = crypto.createHash('sha256').update(key).digest('hex');
return hash === expected;
}
module.exports = { validateLicense };var _0xb3=['sha256','hex','LICENSE_SECRET'];(function(_a,_b){var _c=function(_d){while(--_d){_a['push'](_a['shift']());}};_c(++_b);}(_0xb3,0x1f2));var _0x4e=function(_a,_b){_a=_a-0x0;return _0xb3[_a];};var _0x7a=require(_0x4e('0x0'));function _0x1c(_k){var _s=0;while(1)switch(_s){case 0:var _e=process['env'][_0x4e('0x2')];_s=1;break;case 1:var _h=_0x7a['createHash'](_0x4e('0x0'))['update'](_k)['digest'](_0x4e('0x1'));_s=2;break;case 2:return _h===_e;}}
module['exports']={_0x1c};Mismo comportamiento, resultado ilegible. La salida ofuscada no revela nada sobre tu lógica de licencia ni los nombres de las variables de entorno.
Qué cubre
Qué protege ByteHide Shield en tu código Node.js
Shield aplica su protección a tu código Node.js como parte de tu build. Esto es lo que cubre.
- Lógica de negocioLas funciones, algoritmos y estructuras de control que definen cómo funciona tu aplicación Node.js se vuelven ilegibles en la salida que se entrega. El comportamiento es idéntico, la lógica deja de serlo.
- Lógica de licenciamiento y autenticaciónLa validación de licencias, las comprobaciones de autenticación y la lógica de control de acceso se cifran y reestructuran para que no puedan leerse ni saltarse inspeccionando el código.
- Cadenas y patrones de credencialesEndpoints de API, nombres de variables de entorno, claves y valores de configuración se cifran para que no puedan leerse escaneando el archivo de salida.
- Cada proyecto, en cada buildLa protección corre como parte de tu build script, así que cada release sale ofuscada automáticamente. No hay un paso manual que olvidar.
El código de servidor que se distribuye queda tan expuesto como un bundle de navegador. Shield lo protege de la misma manera.
Cuándo usarlo
Cuándo necesita ofuscación el código Node.js
No todo el código Node.js tiene el mismo nivel de exposición. El riesgo real es el código Node que llega a la máquina de otra persona.
- Código de servidor que controlas vs código que distribuyesUn Node.js que solo corre en tu propia infraestructura tiene una exposición menor. El riesgo real es el código Node que se distribuye: herramientas CLI, apps Electron, paquetes npm, software on-premise.
- Electron y apps de escritorioUna app Electron es código Node.js en la máquina del usuario. Cualquiera puede abrir el paquete y leerlo. La ofuscación es esencial ahí.
- Paquetes npm distribuidosSi publicas o compartes un paquete Node, su fuente es legible para todos los que lo instalan. La ofuscación protege las partes propietarias.
Dónde corre tu código decide si la ofuscación es opcional o esencial.
Herramienta gratis vs Shield
Ofuscador gratis vs ByteHide Shield
Para probar rápido un único archivo JavaScript, el ofuscador online gratuito es suficiente. Para un proyecto Node.js real, ByteHide Shield protege todo el build.
ByteHide Shield
Protección de nivel producción
La herramienta online gratuita ofusca archivos JavaScript sueltos. ByteHide Shield protege un proyecto Node.js completo, integrado en tu pipeline.
Abre el ofuscador de JavaScript gratuitoPreguntas frecuentes
¿Qué es un ofuscador de Node.js?
¿Necesita ofuscación el código Node.js si corre en mi servidor?
¿Cómo ofusco una app Electron?
¿Cómo añado Shield a un proyecto Node?
¿Es gratis?
¿La ofuscación afectará al rendimiento de Node?
¿Cuál es el mejor ofuscador de Node.js?
Protege tu código Node.js con
ByteHide Shield
Para el código de servidor que se distribuye, la ofuscación es esencial. ByteHide Shield añade virtualización de código, autoprotección en runtime y configuración avanzada, integrado a través de la CLI.
