Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
svg-sanitizer — Biblioteca Java que sanitiza archivos SVG eliminando JavaScript, controladores de eventos en línea y etiquetas script, a la vez que bloquea la carga de recursos externos para prevenir XSS. | Kitploit
Herramientas/GitHubGitHub/borewit/svg-sanitizer
Herramientas DefensivasAnálisis EstáticoAnálisis de CódigoSeguridad WebUtilidades y Frameworks
GitHubborewit/svg-sanitizer

svg-sanitizer

Biblioteca Java que sanitiza archivos SVG eliminando JavaScript, controladores de eventos en línea y etiquetas script, a la vez que bloquea la carga de recursos externos para prevenir XSS.

Ver Repositorio
217hace 2 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CI Maven Central javadoc

SVG Sanitizer

SVG Sanitizer es una biblioteca Java diseñada para limpiar archivos SVG eliminando JavaScript potencialmente peligroso, bloqueando la carga de recursos externos y previniendo vulnerabilidades XSS (Cross-Site Scripting). Es útil para garantizar que los archivos SVG sean seguros de usar en una variedad de aplicaciones, incluidos entornos web.

Características

  • Elimina JavaScript de los archivos SVG, incluidos los controladores de eventos en línea y las etiquetas <script>.
  • Bloquea la carga de recursos externos, incluidos los atributos href y xlink:href que apuntan a URL externas.
  • Previene vulnerabilidades XSS saneando elementos y atributos peligrosos.
  • Se puede integrar fácilmente en proyectos Java como una biblioteca.
  • Puede manejar archivos SVG enormes, ya que el SVG se sanea de forma continua (streaming)

Uso

Dependencia Maven

Para usar SVG Sanitizer en tu proyecto Java, incluye la dependencia Maven io.github.borewit:svg-sanitizer.

public class SVGSanitizerExample {
  public static void main(String[] args) {
    String dirtySvgContent = """
      <svg xmlns="http://www.w3.org/2000/svg" width="400" height="400" viewBox="0 0 124 124" fill="none">
        <rect width="124" height="124" rx="24" fill="#000000"/>
          <script type="text/javascript">
            alert(0x539);
         </script>
      </svg>""";
    try {
      String sanitizedSvg = SVGSanitizer.sanitize(dirtySvgContent);
      System.out.println(sanitizedSvg);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Lo cual generará el SVG saneado:

<svg xmlns="http://www.w3.org/2000/svg" fill="none" height="400" viewBox="0 0 124 124" width="400">
    <rect fill="#000000" height="124" rx="24" width="124"/>
</svg>

Sanitizar de InputStream a OutputStream:

import java.io.*;

public class SVGSanitizerExample {
  public static void main(String[] args) throws Exception {
    File inputFile = new File("unsafe.svg");
    File outputFile = new File("sanitized.svg");

    try (InputStream inputStream = new FileInputStream(inputFile)) {
         try (OutputStream outputStream = new FileOutputStream(outputFile)) {
            SVGSanitizer.sanitize(inputStream, outputStream);
          }
    }

    System.out.println("Sanitized SVG has been saved to " + outputFile.getAbsolutePath());
  }
}

Sanitizar de InputStream a InputStream:

import java.io.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;

public class SVGSanitizerExample {
  public static void main(String[] args) throws Exception {
    File inputFile = new File("unsafe.svg"); // Potentially unsafe SVG file

    try (InputStream inputStream = new FileInputStream(inputFile);
         InputStream sanitizedStream = SVGSanitizer.sanitize(inputStream)) {

      // Pass the sanitized stream to an XML parser (without converting it to a String)
      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
      DocumentBuilder builder = factory.newDocumentBuilder();
      Document doc = builder.parse(sanitizedStream);

      System.out.println("SVG file successfully parsed after sanitization.");
    }
  }
}

Métodos disponibles

public static String sanitize(String svgContent)

Este método solo debe usarse si cargar el SVG completo en memoria no supone un problema.

public static void sanitize(InputStream inputStream, OutputStream outputStream)

Escribe el SVG saneado en el outputStream dado

public static InputStream sanitize(InputStream inputStream)

Actúa como un filtro, devolviendo un nuevo InputStream con el SVG saneado.

Consideraciones de seguridad

Los SVG subidos por el usuario pueden contener contenido malicioso que podría ejecutarse en un contexto de navegador. Sanear los SVG es un paso importante, pero debe combinarse con otras medidas para una protección completa. Consulte Mejores prácticas de seguridad para SVG para obtener una visión general más amplia.

Licencia

Este proyecto está licenciado bajo la Licencia MIT

Descargar herramienta