HyperFrames
Seguridad de HyperFrames: una composición enviada es código ejecutable
Establece fronteras para scripts HTML, recursos remotos, privilegios del navegador y artefactos antes de ofrecer generación de vídeo a usuarios.
Qué aprenderás
- El HTML arbitrario puede ejecutar código.
- Un contenedor no define por sí solo la frontera de confianza.
- Registra procedencia y publica únicamente artefactos completos.
Antes de empezar
- HTML, CSS y JavaScript básicos
- Node.js 22+ y FFmpeg para el ejercicio local
Explica la frontera del capítulo y utiliza su lista para evaluar un flujo de vídeo repetible.
Conclusiones clave
- El HTML arbitrario puede ejecutar código.
- Un contenedor no define por sí solo la frontera de confianza.
- Registra procedencia y publica únicamente artefactos completos.
Una composición no es una plantilla pasiva
HyperFrames acepta HTML, scripts de animación y referencias a medios. Permitir composiciones arbitrarias significa aceptar contenido ejecutable del navegador, no solo documentos inofensivos. Las recomendaciones de aislamiento de este capítulo son un modelo de amenazas de la aplicación, no una afirmación de que el paquete implemente todos esos controles.
Separa plantillas internas confiables de código enviado por usuarios. El renderizador no debe heredar secretos de producción ajenos, montajes escribibles amplios o acceso ilimitado a servicios internos por el mero hecho de ejecutarse en un contenedor. Define la cuenta y los accesos realmente necesarios para sus recursos.
Controla dependencias y adquisición de recursos
El ejemplo del README carga GSAP desde una CDN. Es cómodo para aprender, pero una muestra de producción necesita dependencias fijas y una política deliberada de recursos. Las URL remotas pueden cambiar, fallar o apuntar a destinos indebidos. Decide entre preparar archivos autorizados por adelantado y permitir una red restringida durante el render.
Fuentes, imágenes, audio y vídeo también necesitan procedencia y permisos de uso. Un registro local facilita reproducibilidad y permite identificar qué puede publicarse. Que un archivo sea accesible públicamente no demuestra permiso para redistribuirlo dentro de un vídeo generado.
Acota fallos y conserva trazabilidad
Establece plazos y límites externos para captura y codificación. Separa archivos temporales por trabajo, conserva la causa de fallo y publica solo artefactos terminados. Distingue fallos transitorios de infraestructura de composiciones que siempre fallan al prepararse o referencian archivos ausentes.
Registra revisión de composición, identidades de recursos, configuración y salida, sin guardar credenciales o medios privados innecesariamente. Si un agente escribe el código, revisa también sus peticiones de red antes de ejecutarlo. El código generado requiere la misma decisión de confianza que el enviado por una persona.
Pasos de implementación
- 1
Clasifica por separado plantillas internas y código enviado.
- 2
Define accesos a archivos, red y secretos.
- 3
Prepara recursos autorizados con identidad registrada.
- 4
Acota ejecución y conserva un registro trazable del resultado.
Ejemplo para copiar
Envío -> revisión y entradas permitidas
Recursos -> archivos autorizados y versiones
Ejecución -> cuenta, montajes, red y plazo limitados
Publicación -> artefacto completo y procedencia
Lista de diseño, no configuración incluida del renderizador.Preguntas frecuentes
¿Docker vuelve seguras las composiciones arbitrarias?
No. La frontera depende de permisos, montajes, red, secretos y límites realmente configurados.
¿Se puede reutilizar música accesible públicamente?
El acceso no demuestra permiso de redistribución. Revisa los términos aplicables y el uso previsto.
Fuentes
- README fijadoFuente verificada 2026-09-07
- Adaptador GSAPFuente verificada 2026-09-07
- Despachador temporalFuente verificada 2026-09-07
- Adaptador Three.jsFuente verificada 2026-09-07
- Pruebas GSAPFuente verificada 2026-09-07
- Pruebas del despachadorFuente verificada 2026-09-07