iframe sandbox: qué permite cada token

Atributo sandbox de iframe

iframe sandbox: todos los tokens, con demo interactiva | We.Inc

Activa y desactiva cada token de iframe sandbox y observa cómo scripts, formularios, ventanas emergentes y alertas funcionan o dejan de hacerlo. Cada token, explicado.

Un atributo sandbox vacío bloquea un iframe por completo: sin scripts, sin envío de formularios, sin ventanas emergentes, sin alertas y con un origen opaco que falla todas las comprobaciones de mismo origen. Cada token allow- que añades devuelve un permiso concreto. Activa los tokens de abajo para ver exactamente qué se rompe y luego copia el conjunto mínimo que necesita tu inserción.

Casos habituales y los tokens que necesitan

El atributo sandbox es la mejora de seguridad más barata que puedes añadir a un iframe que muestra contenido que no escribiste tú: HTML de usuarios, un espacio publicitario, la vista previa de una página generada. Lo difícil es saber qué tokens necesita cada inserción, porque cuando falta uno lo normal es que falle sin avisar. El marco en vivo de abajo ejecuta pruebas reales, así que ves cada fallo en lugar de adivinarlo. Para lo básico sobre insertar contenido, empieza por nuestra guía de iframe HTML y vídeo.

Preguntas frecuentes

¿Qué hace un atributo sandbox vacío?

Aplica todas las restricciones a la vez. El documento enmarcado no puede ejecutar scripts, enviar formularios, abrir ventanas emergentes ni modales, navegar la ventana superior, bloquear el puntero ni la orientación, ni iniciar descargas, y se trata como si viniera de un origen único que nunca coincide con nadie.

¿Por qué es peligroso allow-scripts con allow-same-origin?

Cuando el documento enmarcado está en el mismo origen que tu página, esos dos tokens juntos permiten que su script suba y elimine el atributo sandbox, de modo que acaba sin ser más seguro que un iframe normal. La combinación está bien para contenido de un origen realmente distinto, que de todas formas no puede tocar tu página.

Mi formulario en sandbox no hace nada al pulsar enviar. ¿Por qué?

Sin allow-forms el formulario se sigue mostrando, pero al enviarlo no se lanza ninguna validación ni se mandan datos a un servidor. Añade allow-forms. Si el formulario también depende de cookies o almacenamiento de su propio sitio, necesitará además allow-same-origin.

¿Puede un iframe en sandbox redirigir toda mi página?

No, salvo que añadas allow-top-navigation o allow-top-navigation-by-user-activation, que solo lo permite después de que la persona haga clic dentro del marco. Si dejas fuera ambos, una inserción no puede sustituir tu página por otro sitio.

¿Basta con sandbox para mostrar HTML no confiable de forma segura?

Es la capa principal, no la única. Sirve el contenido no confiable desde un origen aparte o con srcdoc, mantén allow-same-origin desactivado cuando los scripts estén activos y añade una Content-Security-Policy al documento enmarcado si controlas cómo se sirve.

Cómo cambia las cosas el origen opaco

Los fallos silenciosos son lo normal

sandbox, allow y CSP hacen trabajos distintos

Todos los tokens de sandbox

Los tokens van separados por espacios y no distinguen mayúsculas de minúsculas. Todo lo que no aparezca sigue bloqueado.

Tokens de sandbox y lo que permite cada uno

Patrones para copiar

Vista previa de HTML de usuario con scripts desactivados

El botón dentro del marco tiene un manejador onclick, pero con un sandbox vacío nunca se ejecuta.

Widget de terceros en otro origen

El widget ejecuta su propio script y envía su formulario, y los enlaces pueden abrir pestañas reales. No puede redirigir tu página.

Las mismas restricciones enviadas como cabecera de respuesta

Un servidor puede aplicar sandbox a su propia página con CSP, que se aplica incluso cuando la página se abre directamente en lugar de dentro de un marco.

Activa tokens y prueba el marco

El marco de abajo es un documento srcdoc. Aquí no se ofrece allow-same-origin, porque un marco srcdoc compartiría entonces el origen de esta página, justo la combinación sobre la que advierten los consejos.

Los scripts están bloqueados, así que nada en este marco puede ejecutarse.

Tokens

Atributo actual

Marco de prueba de sandbox

Los scripts se ejecutaron. El origen de este marco es: {v}

Enviar formulario

Abrir ventana emergente

Mostrar alerta

Formulario enviado.

El formulario no se envió.

Ventana emergente abierta (y cerrada de nuevo).

Ventana emergente bloqueada: window.open devolvió null.

Se mostró la alerta.

Alerta bloqueada: volvió al instante sin mostrarse.

Hola desde el marco en sandbox

Empieza gratis · Sin tarjeta de crédito

Relacionado: Guías

Producto

Para quién es

Funciones

Recursos

Empresa

Mapa del sitio