Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
svg-sanitizer — Libreria Java che sanifica i file SVG rimuovendo JavaScript, gestori di eventi inline e tag script, bloccando al contempo il caricamento di risorse esterne per prevenire XSS. | Kitploit
Strumenti/GitHubGitHub/borewit/svg-sanitizer
Strumenti DifensiviAnalisi StaticaAnalisi del CodiceSicurezza WebUtilità e Framework
GitHubborewit/svg-sanitizer

svg-sanitizer

Libreria Java che sanifica i file SVG rimuovendo JavaScript, gestori di eventi inline e tag script, bloccando al contempo il caricamento di risorse esterne per prevenire XSS.

Vedi Repository
2121 giorno faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CI Maven Central javadoc

SVG Sanitizer

SVG Sanitizer è una libreria Java progettata per ripulire i file SVG rimuovendo JavaScript potenzialmente pericoloso, bloccando il caricamento di risorse esterne e prevenendo vulnerabilità XSS (Cross-Site Scripting). È utile per garantire che i file SVG siano sicuri da utilizzare in una varietà di applicazioni, inclusi gli ambienti web.

Funzionalità

  • Rimuove JavaScript dai file SVG, inclusi i gestori di eventi inline e i tag <script>.
  • Blocca il caricamento di risorse esterne, inclusi gli attributi href e xlink:href che puntano a URL esterni.
  • Previene le vulnerabilità XSS sanificando elementi e attributi pericolosi.
  • Può essere integrata facilmente nei progetti Java come libreria.
  • Può gestire file SVG di grandi dimensioni, poiché l'SVG viene sanificato in modalità streaming

Utilizzo

Dipendenza Maven

Per utilizzare SVG Sanitizer nel tuo progetto Java, includi la dipendenza 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();
    }
  }
}

Che produrrà l'SVG sanificato:

<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>

Esegui la sanitizzazione da 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());
  }
}

Esegui la sanitizzazione da 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.");
    }
  }
}

Metodi disponibili

public static String sanitize(String svgContent)

Questo metodo dovrebbe essere utilizzato solo se caricare l'intero SVG in memoria non rappresenta un problema.

public static void sanitize(InputStream inputStream, OutputStream outputStream)

Scrive l'SVG sanitizzato nel flusso di output specificato

public static InputStream sanitize(InputStream inputStream)

Funziona come filtro, restituendo un nuovo InputStream con l'SVG sanitizzato.

Considerazioni sulla sicurezza

Gli SVG caricati dagli utenti possono contenere contenuti malevoli che potrebbero essere eseguiti in un contesto browser. La sanitizzazione degli SVG è un passaggio importante, ma dovrebbe essere combinata con altre misure per una protezione completa. Vedi Best practice per la sicurezza degli SVG per una panoramica più ampia.

Licenza

Questo progetto è distribuito con la Licenza MIT

Scarica lo strumento