Eduardo Garbayo · Ingeniero SEO WPO
Informática, Redes, SEO. • • Lectura: ~3 min • 865 lecturas

Habilitación Segura de SVG en Sitios Web: Una Guía Técnica

### Introducción El formato SVG (Scalable Vector Graphics) es ampliamente utilizado en la web para gráficos e iconos debido a su escalabilidad y calidad. Sin embargo, habilitar la…

Eduardo Garbayo

Eduardo G. Garba

Ingeniero Industrial, consultor SEO · WPO y escritor • Desde 1996

Introducción

El formato SVG (Scalable Vector Graphics) es ampliamente utilizado en la web para gráficos e iconos debido a su escalabilidad y calidad. Sin embargo, habilitar la carga de archivos SVG en un sitio web puede presentar riesgos significativos de seguridad, ya que los archivos SVG pueden contener código malicioso. En este artículo, exploraremos las mejores prácticas para habilitar SVG de manera segura, plugins recomendados y técnicas de validación y sanitización.

Riesgos Asociados con los Archivos SVG

Los archivos SVG son documentos XML que pueden incluir scripts y estilos embebidos. Esto los hace susceptibles a ataques como Cross-Site Scripting (XSS), donde un atacante puede inyectar código malicioso que se ejecutará en el navegador del usuario.

Plugins Recomendados para Manejo Seguro de SVG

Para minimizar los riesgos, es recomendable utilizar plugins especializados que manejen la sanitización y validación de archivos SVG. Dos plugins populares son:

  1. SVG Plugin Safe
  2. SVG Support

Estos plugins ayudan a asegurar que los archivos SVG subidos no contengan código malicioso.

Fuentes de Iconos SVG

Para obtener iconos SVG gratuitos y de alta calidad, puedes visitar Linearicons.

Pruebas de Código SVG

Para experimentar y probar código SVG, una excelente herramienta es CodePen, donde puedes visualizar y editar tu código en tiempo real.

Habilitación Manual de SVG en WordPress

Para habilitar la carga de archivos SVG en WordPress de manera manual, puedes añadir el siguiente código en el archivo functions.php de tu tema:

function dmc_add_svg_mime_types($mimes) {
$mimes['svg'] = 'image/svg+xml';
return $mimes;
}
add_filter('upload_mimes', 'dmc_add_svg_mime_types');

Este fragmento de código añade el tipo MIME para archivos SVG, permitiendo su carga.

Propiedades Importantes del SVG

Al trabajar con SVG, es crucial entender algunas de sus propiedades y atributos clave:

  1. Viewport y ViewBox:
  • Viewport: Define el área visible del SVG. Se establece con los atributos width y height del elemento <svg>.
  • ViewBox: Define la posición y dimensión en el espacio de usuario. El valor del atributo viewBox es una lista de cuatro números: min-x, min-y, width y height.

Ejemplo:

<svg width="50" height="50" viewBox="0 0 100 100">
<!-- Contenido del SVG -->
</svg>

En este ejemplo, el SVG tiene una dimensión de 100x100, pero el viewport solo muestra una porción de 50x50.

Validación y Sanitización de SVG

Para asegurar que los archivos SVG no contengan código malicioso, es esencial realizar una validación y sanitización exhaustiva. Algunos pasos a seguir incluyen:

  1. Eliminar Scripts y Estilos Embebidos: Utilizar herramientas como SVG Sanitizer para eliminar cualquier script o estilo embebido en el archivo SVG.

  2. Validar Estructura XML: Utilizar validadores XML para asegurar que el archivo SVG tiene una estructura correcta y no contiene elementos sospechosos.

Conclusión

Habilitar la carga de archivos SVG en un sitio web requiere precauciones adicionales para asegurar que no se introduzcan vulnerabilidades de seguridad. Utilizando plugins confiables, practicando una validación y sanitización adecuadas, y comprendiendo los atributos clave del SVG, se puede disfrutar de los beneficios de los gráficos vectoriales escalables de manera segura.

Referencias

  1. Linearicons - Iconos SVG gratuitos
  2. CodePen - Pruebas de código SVG
  3. SVG Sanitizer en GitHub
  4. Mozilla Developer Network (MDN) - SVG

Implementaciones Adicionales

  • Configuración de Seguridad en Servidores: Asegurar que el servidor web está configurado para servir archivos SVG de manera segura.
  • Monitoreo y Auditoría: Implementar un monitoreo continuo para detectar cualquier uso indebido de archivos SVG.

Al seguir estas prácticas, se puede habilitar el uso de SVG en sitios web de manera efectiva y segura, minimizando riesgos y aprovechando al máximo las capacidades de los gráficos vectoriales.

Habilitando a mano :
function dmc_add_svg_mime_types($mimes) { $mimes['svg'] = 'image/svg+xml'; return $mimes; } add_filter('upload_mimes', 'dmc_add_svg_mime_types');
Nuevo libro ya a la venta · Ciencia Ficción Dura

RES SILENTIS, donde callan las estrellas

La verdadera pregunta nunca fue si estábamos solos. Era si estábamos preparados. Top 10 de Amazon Hard Sci-Fi.

Artículos recomendados

Ver todos →