Saltar al contenido
Todos los casos

Publicación de previews protegidos

El pipeline que lleva un recurso HTML desde mi computador hasta el portal privado de un cliente, sin que lo que se pueda guardar sirva como producto.

Carpeta localZip desde el panelSolo lo que se usaRutas limpiasScripts ofuscadosMarca y guardiánVersión nuevaPortal con sesiónRegistro por acceso
Recorrido de un preview, desde la carpeta local hasta el portal del cliente.

El problema

Las instituciones quieren probar un recurso antes de pagarlo, y un HTML que funciona en el navegador siempre se puede guardar. Recortar funciones no es opción: el cliente tiene que ver el recurso completo.

El objetivo entonces no es impedir que se guarde, sino que lo guardado no sirva fuera del portal ni con estudiantes, y que cada apertura quede registrada.

Estación por estación

  1. Carpeta local

    La CLI lee la carpeta con los HTML en mi computador. La versión limpia nunca sale de ahí.

  2. Zip desde el panel · ramal secundario

    La otra entrada: el navegador sube el .zip directo al almacenamiento con un PUT firmado, y el servidor lo procesa en segundo plano.

  3. Solo lo que se usa

    Copia el HTML y solo los archivos de su carpeta que el HTML nombra. Lo demás no viaja.

  4. Rutas limpias

    Nombres sin espacios, tildes ni mayúsculas, con todas las referencias reescritas.

  5. Scripts ofuscados

    Ofusca los scripts en línea y los .js locales, amarrados a los dominios del espacio del cliente.

  6. Marca y guardián

    Agrega la marca de agua fija y un guardián que reemplaza la página si se abre fuera del subdominio del cliente.

  7. Versión nueva

    Cada publicación es una versión nueva en el almacenamiento. La anterior sigue visible hasta que la nueva tiene todos sus archivos.

  8. Portal con sesión

    El servidor entrega cada archivo solo a una sesión válida del subdominio del cliente.

  9. Registro por acceso · ramal secundario

    Cada entrada y cada preview abierto quedan registrados por persona, con la IP reducida a un hash.

Decisiones

  • Un mismo pipeline para la CLI y el panel

    Los lotes grandes salen de mi computador con un comando; un cambio puntual, desde el panel. Si cada entrada tuviera su propio armado, tarde o temprano un preview saldría sin guardián.

  • La versión nueva se activa al final

    Mientras se suben los archivos, el cliente sigue viendo la versión anterior completa. Nunca ve una página a medio subir.

  • Sin bloquear el clic derecho ni las herramientas de desarrollo

    No protegen nada y dañan la accesibilidad. La protección está en lo que se entrega, no en esconder el navegador.

  • El archivo pesado no pasa por el servidor

    El .zip va directo al almacenamiento con una URL firmada. El servidor solo recibe el aviso y procesa después de responder.

Lo que no resuelve

Es disuasión, no DRM. Quien tenga el HTML y tiempo puede quitar el guardián.

La protección de fondo es comercial: el preview no es entrega ni licencia, y la versión limpia se entrega después del pago.

Con qué está hecho

  • Next.js 16
  • Postgres (Supabase) con Drizzle
  • Cloudflare R2
  • javascript-obfuscator

Repositorio: Pendiente: enlace al repositorio

Fin del casoVer todos los casos