render SVG de forma segura

4

¿Cómo puedo representar documentos SVG de forma segura en una aplicación para compartir medios?

Creo que la política del mismo origen podría ayudar un poco si almaceno los documentos SVG en un dominio separado y los muestro dentro de un elemento <iframe> , pero no estoy seguro de que la política del mismo origen detecte algo similar a <script>window.top.location = 'http://malic.io.us/pwnd'</script> en el SVG.

No he podido encontrar nada a través de la búsqueda web. ¿Tiene alguna práctica canónica o es un rincón poco desarrollado de las especificaciones web?

    
pregunta joar 08.09.2013 - 21:45
fuente

2 respuestas

5

Debes usar la etiqueta img en lugar de iframe o object . Si lo hace, se aplican las siguientes restricciones de seguridad (independientemente del origen del archivo) al SVG:

  • JavaScript está deshabilitado.
  • Los recursos externos (por ejemplo, imágenes, hojas de estilo) no se pueden cargar, aunque se pueden usar si están en línea a través de las URL o datos de objetos de BlobBuilder: URI.
  • : los estilos de enlace visitado no se representan.
  • El estilo del widget nativo de la plataforma (basado en el tema del sistema operativo) está deshabilitado.

Esta información está documentada aquí .

    
respondido por el copy 09.09.2013 - 01:10
fuente
0

No hay solución final, pero información valiosa:

Paul Stone dio una charla ' Precision Timing - Atacando la privacidad del navegador con SVG y CSS ' en OWASP AppSec Research 2013 : grabación de alta calidad found here , grabación de calidad media encontrado aquí .

Además, Fredrik Braun 's talk ' Política de origen La aplicación en navegadores modernos también podría ser interesante: grabación de alta calidad encontrado aquí , grabación de calidad media se encuentra aquí .

    
respondido por el SteAp 09.09.2013 - 00:04
fuente

Lea otras preguntas en las etiquetas