lunes, 5 de diciembre de 2016

SVG Scripting How to



Autor: @RaulRenales

A raíz del artículo hay mucha gente que me ha preguntado sobre las imágenes vectoriales del formato SVG y las implicaciones en seguridad que este tipo de formatos puede acarrear.

Primero de todo repasemos que es una imagen SVG:
Gráficos Vectoriales Redimensionables o SVG es un formato de gráficos vectoriales bidimensionales, tanto estáticos como animados, en formato XML, cuya especificación es un estándar abierto desarrollado por el W3C desde el año 1999.


Para crear una imagen, o un texto, o un degradado, etc... lo único que debemos utilizar es un código como este:



Como se puede ver en el código, la primera etiqueta (svg) define el espacio donde se pintara el círculo, y la etiqueta circle define el área de la circunferencia, el contorno y el relleno del mismo. Fácil y sencillo.
El código anterior está insertado directamente en una página web, con lo que el código se puede leer tan solo con revisar el código fuente de la página.
Si lo que buscamos es algo más privado, o al menos no tan obvio, podemos empaquetar todo en un bonito archivo .SVG y lanzarlo como un objeto embebido.
Para poder crear el archivo .SVG, lo único que necesitamos es una herramienta de edición de textos como Notepad++ y escribir el siguiente código:



Tan solo tenemos que guardar el archivo como Imagen.svg y ya tienes una imagen vectorial lista para insertar en tu web mediante la siguiente etiqueta:



Al lio ... ¿Cómo funcionan los Scripts en las imágenes SVG?

Una de las cosas más interesantes que tiene este formato, es la capacidad que tiene para que podamos incorporar dentro de sus etiquetas scripts que se ejecuten ligados a la imagen o a eventos relacionados con la misma.

Un ejemplo sencillo:


Como se puede ver en el código anterior, hemos insertado un pequeño script para saludar, el script tiene que estar dentro de las etiquetas de para asociarlo con la carga de la imagen.
De la misma manera que hemos insertado el script en una porción de código de la página, lo podemos empaquetar con la imagen y esconderlo en la extensión .svg.




Como bien os podéis imaginar lo que pongáis en la parte del Script es cosa vuestra, pero es relativamente fácil obtener información del usuario, o bien, utilizarlo para hookear un navegador a un panel de control.

Navegadores hookeados por un script incluido en un SVG


Bueno, hasta aquí el pequeño How To para insertar scripts en imágenes vectoriales SVG, esperando que os haya gustado me despido hasta un nuevo post en este blog.