Domain Lock

El domain lock restringe tu código JavaScript para que solo se ejecute en los dominios que autorices, impidiendo que quien lo copie pueda ejecutarlo en otro sitio.

  • JavaScriptJavaScript
TL;DR

JavaScript se entrega al navegador, donde cualquiera puede copiarlo. El domain lock vincula tu código a una lista de dominios autorizados. En cualquier otro dominio, el código se niega a ejecutarse. Una copia robada no sirve de nada porque solo funciona donde tú lo permites.

Definición

¿Qué es el domain lock?

El domain lock es una protección que restringe dónde se permite ejecutar código JavaScript. JavaScript se entrega al navegador en el momento en que se ejecuta, lo que significa que cualquiera que visite tu sitio puede copiarlo y servirlo por su cuenta.

Sin una restricción, el código copiado se ejecuta en cualquier sitio. Un atacante puede tomar tu aplicación de cliente y desplegarla en su propio dominio, reutilizando tu trabajo directamente.

El domain lock evita esto. El código comprueba el dominio en el que se está ejecutando contra una lista de dominios autorizados. En un dominio autorizado se ejecuta con normalidad. En cualquier otro sitio, se niega a ejecutarse.

Mecanismo

Cómo funciona el domain lock

El domain lock incrusta una comprobación de autorización en tu código:

  • Allowlist de dominios. Cuando se protege el código, se define una lista de dominios autorizados.

  • Verificación en runtime. Al ejecutarse, el código comprueba el dominio en el que está corriendo contra esa allowlist.

  • Respuesta configurable. En un dominio no autorizado, el código puede detenerse, romperse o comportarse de forma incorrecta.

La comprobación queda entrelazada en el código protegido, así que no se puede quitar sin más.

Ejemplo

Ejemplo de domain lock

Tu código se publica sin cambios. Lo que cambia cuando se carga en un dominio que no autorizaste es si llega a ejecutarse o no.

Sin domain lock

Un atacante copia tu JavaScript, lo aloja en su propio dominio y se ejecuta a la perfección, reutilizando tu aplicación gratis.

Con domain lock

El mismo código copiado comprueba su dominio, ve que no está autorizado y se niega a ejecutarse.

Sin domain lock
function startApp() {
    api.init(window.location.host);
    return ui.render();
}
Con domain lock
function startApp() {
    api.init(window.location.host);
    return ui.render();
}

Casos de uso

Cuándo usar domain lock

El domain lock es más útil cuando tu aplicación:

  • Es JavaScript entregado al navegador y con riesgo de ser copiado.
  • Representa trabajo de cliente que no quieres que se reutilice en otros sitios.
  • Solo debería ejecutarse en dominios que tú controlas.

Combina con name obfuscation, control flow obfuscation y anti-debugging: estas hacen que el código copiado sea difícil de leer; el domain lock hace que directamente se niegue a ejecutarse.

Disponibilidad por plataforma

Domain lock y la plataforma JavaScript

  • JavaScript

    Exclusivo. El domain lock se apoya en el concepto de dominio del navegador, así que aplica a JavaScript. Otras plataformas controlan la distribución mediante protecciones distintas.

Preguntas frecuentes

¿Qué es el domain lock?
El domain lock es una protección para JavaScript que restringe el código a ejecutarse solo en una lista de dominios autorizados, de forma que una versión copiada se niega a ejecutarse en cualquier otro sitio.
¿El domain lock afecta al rendimiento?
No. La comprobación de dominio es una verificación pequeña que se ejecuta sin coste apreciable.
¿Qué pasa cuando el código se ejecuta en un dominio no autorizado?
La respuesta es configurable. El código puede detenerse, romperse o comportarse de forma incorrecta, así que una copia robada no funciona.
¿Se puede saltar el domain lock?
Un atacante puede intentar localizar y quitar la comprobación; por eso el domain lock se combina con ofuscación y anti-debugging que hacen difícil dar con ella.
¿Qué plataformas soportan domain lock?
El domain lock aplica a JavaScript, porque se apoya en el concepto de dominio del navegador.
+10.000 desarrolladores y empresas protegen sus aplicaciones con ByteHide

Protege tu aplicación con
ByteHide Shield

El domain lock es una de las más de 20 protecciones de ByteHide Shield. Aplícalo a tu aplicación JavaScript.

ByteHide runtime dashboard showing live threat monitoring and protection metrics