Por qué no es buena idea usar vectores SVG en WordPress

¿Por qué no se pueden subir archivos SVG en WordPress?

Si alguna vez has intentado subir un archivo en vectores SVG en WordPress te habrás llevado la sorpresa de que no lo permite, a pesar de lo populares que se están volviendo este tipo de archivos en su uso para iconos y logos, principalmente.

El motivo te lo dice el mismo WordPress, como puedes ver en esta captura…

subida de archivos svg en WordPress

El problema de seguridad con los archivos de vectores SVG

logo svg

Los archivos SVG son extremadamente inseguros.

El motivo, como reza el mensaje de error, es por seguridad, y te quedará muy claro si intentas abrir en tu ordenador un archivo con extensión .svg, pues si tienes instalado algún editor de código, algún IDE, se abrirá para mostrarte la cruda realidad, esta:

código xml de archivo svg

Efectivamente, un archivo SVG es un documento de código en XML, no un archivo de imagen como la mayoría de la gente cree y, como todo documento, es susceptible de sufrir inyecciones de código, fácilmente.

Un ejemplo

Por ejemplo, los archivos SVG permiten incrustar JavaScript y los lectores de SVG, y tu navegador lo es, pueden ejecutarlo. ¿Quieres verlo?

Abre tu editor de código favorito y pega este código:

El archivo básicamente es para mostrar un círculo rojo, pero tiene premio incluido.

Ahora guárdalo con el nombre que quieras, por ejemplo susto.svg. A continuación ábrelo con tu navegador y … ¡sorpresa!

javascript en archivo svg en WordPress

Tu navegador ejecutará el JavaScript antes incluso de mostrar el círculo rojo de marras.

En este caso el script es inofensivo, solo muestra una ventana emergente a aceptar antes de poder ver el círculo rojo, pero podría llevar cualquier otro comando no tan simpático, y ese es el problema.

Esta vulnerabilidad inherente a todos los archivos SVG se podría aprovechar para, por ejemplo, inyectar código en un ataque XSS.

¿Por qué son tan populares los archivos SVG?

flat icons

No son algo nuevo, ni de lejos, pero últimamente se han vuelto a popularizar por varios motivos:

  • El uso de iconos vectoriales SVG, entre ellos los famosos y ya cansinos flat icons, por multitud de temas avanzados para webs de venta y conversión.
  • El pequeño tamaño de los archivos SVG comparados con PNG y otros formatos que admiten fondos transparentes.
  • La enorme escalabilidad de los archivos SVG sin pérdida de calidad en pantallas grandes o de alta calidad, retina por ejemplo.
  • La fiebre por la optimización de carga o WPO, que nos anima a usar recursos gráficos lo más pequeños de tamaño posible, y los archivos SVG pesan poco y dan mucha calidad.

diferencias de escalabilidad entre svg y otros archivos

¿Por qué son tan inseguros los archivos SVG?

 

icono archivo svg

Hay expertos que han llegado a determinar lo siguiente:

Literalmente, por su propio diseño, los archivos SVG están diseñados para ser inseguros.

Ahí es nada.

De hecho, si WordPress permitiese archivos SVG, la biblioteca de saneado no solo tendría que funcionar bien, también tendría que ser revisada en profundidad, sobre todo en entornos de producción a gran escala.

Y, no olvidemos que WordPress está detrás de casi el 30% de la web, con lo que el potencial de inseguridad es inmenso.

La inseguridad de los archivos SVG no es un fallo desconocido o nuevo. Hay multitud, y bien conocidas, vulnerabilidades con los archivos SVG.

Como SVG está basado en XML, abre una enorme sobreabundancia de problemas, como vulnerabilidades XXE (XML External Entity), ataques XSS (Cross Site Scripting) y muchísimas más.

No es una teoría, o algo oculto o desconocido. Hay más de 8.000 bien conocidas vulnerabilidades relacionadas con todo tipo de vulnerabilidades de seguridad de todo tipo con los archivos SVG.

Otro ejemplo que recordarás

archivos infectados virus wannacry

¿Te acuerdas del famoso virus/ransomware WannaCry?

Pues los archivos SVG estaban en la lista de documentos que inyectaba y encriptaba código malicioso, con el que infectó millones de ordenadores en todo el mundo.

¿De verdad es tan grave? Si solo tengo unos iconos pequeños y ¡taaan monosss!

A ver, no es un cachorro.

Lo que en realidad tienes no son unos pequeños y bonitos, ¿cuántos? ¿6 iconos?, en realidad lo que tienes ahí, en la portada de tu web, son 6 preciosos documentos XML vulnerables, sin ningún código ni saneado que impida que tengas 6 bombas potenciales listas para estallar con el “estímulo” adecuado.  ,

Vale, todo muy interesante pero quiero usar archivos SVG

Bueno, tú mismo, pero recuerda la enorme vulnerabilidad que estás asumiendo. Y una vez dicho esto, como la información no hace daño a nadie, aquí tienes cómo permitir la subida de archivos SVG a WordPress.

Simplemente añade el siguiente código a tu plugin de personalizaciones o al archivo functions.php del tema activo:

También, puedes añadir lo siguiente en el archivo .htaccess:

O, si te gusta más, puedes hacerlo instalando el plugin SVG Support.

¿Puedo usar archivos de vectores SVG en WordPress con seguridad?

Mejor pregunta. Si crees que necesitas usar archivos SVG entonces puedes instalar el plugin Safe SVG que, una vez instalado, te permitirá subir archivos con extensión .svg en WordPress, pero antes aplicando una mínima medida de seguridad: no permitir que subas archivos SVG sin sanear.

Está basado en DOMPurify para sanear correctamente los archivos SVG.

De paso activa la vista previa de los archivos SVG en la biblioteca de medios.

¿Estoy totalmente seguro usando esto?

No. Vuelve a leer el artículo desde el principio para grabarte a fuego que no es seguro usar archivos SVG en WordPress, ni en ningún otro sistema dicho sea de paso.

Valora este artículo para mejorar la calidad del blog ...

FlojitoNo está malEstá bienMe ha servidoFantástico (8 votos, promedio: 4,25 de 5)
Cargando…

Autor: Fernando

Fernando Tellado, apasionado de WordPress, profesor, consultor y ponente. Maquero cansino, padre de tres hijos y de una perrita Beagle, Bilbaíno de nacimiento, Español de corazón y ciudadano de donde me quieran.

Autor del libro WordPress – La tela de la araña. Mi blog personal es Navegando con red, donde he crecido como escritor en la red y ofrezco mis visiones acerca de la Web 2.0 y la blogosfera.

Comparte esta entrada en
468 ad

LOS BURÓCRATAS DE LA UE ME EXIGEN QUE TE DIGA QUE SI VISITAS AYUDA WORDPRESS PUEDES RECIBIR ALGUNA COOKIE. AQUÍ NO HAY COOKIES DE PUBLICIDAD, COMO LAS QUE SI TE DEJAN GOOGLE, AMAZÓN Y MONTÓN DE SITIOS, SIN AVISAR, PERO EL QUE TE TENGO QUE AVISAR SOY YO. LAS COOKIES QUE TE DEJA AYUDA WORDPRESS SON PARA FACILITARTE LA NAVEGACIÓN, COMPARTIR Y COMENTAR. SI NO QUIERES RECIBIR COOKIES PUEDES NAVEGAR EN MODO PRIVADO, ABANDONAR ESTE SITIO Y PERDERTE EL CONTENIDO GRATIS QUE COMPARTO CADA DÍA SOBRE WORDPRESS O IRTE A UNA ISLA DESIERTA PARA VIVIR AISLADO DEL MUNDO, ESO SÍ, SIN COOKIES. O SINO, SIMPLEMENTE CIERRA ESTA VENTANA COÑAZO Y SIGUE DISFRUTANDO DEL BLOG. SI TIENES CURIOSIDAD SOBRE ESTO DE LAS COOKIES TE DEJO UN ENLACE >> MÁS INFORMACIÓN

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar