Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
safe-svg — Bibliothèque simple et légère qui aide à valider les fichiers SVG de manière sécurisée. | Kitploit
Outils/GitHubGitHub/bgalek/safe-svg
Outils DéfensifsAnalyse StatiqueAnalyse des VulnérabilitésAnalyse de CodeSécurité Web
GitHubbgalek/safe-svg

safe-svg

Bibliothèque simple et légère qui aide à valider les fichiers SVG de manière sécurisée.

Voir le dépôt
48927il y a 2 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Site web
Partager

SÉCURITÉ SVG

Bibliothèque simple et légère qui aide à valider les fichiers SVG de manière sécurisée.

Build Codecov GitHub Release Date Maven Central Libraries.io dependency status for GitHub repo Quality Gate Status

Elle vous aidera à détecter du contenu malveillant dans les SVG téléversés.

Saviez-vous que le SVG peut provoquer des XSS ?

Consultez https://sekurak.pl/pozwalasz-ladowac-pliki-svg-masz-xss-a/ pour plus de détails.

Exemple

Essayez de téléverser ce SVG dans votre application ; s'il passe et que l'utilisateur peut parcourir ce fichier, vous êtes probablement vulnérable à une attaque XSS.

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg">
<polygon id="triangle" points="0,0 0,50 50,0" fill="#009900" stroke="#004400"/>
<script type="text/javascript">
alert('Hello, world!');
</script>
</svg>

Utilisation

Ajoutez la dépendance de la bibliothèque :

implementation "com.github.bgalek.security.svg:safe-svg:1.2.0"

Vous pouvez utiliser cette bibliothèque pour vérifier les fichiers SVG téléversés

SvgSecurityValidator svgSecurityValidator = SvgSecurityValidator.builder().build();
String svg = "<?xml version=\"1.0\" standalone=\"no\"?>\n" +
                "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n" +
                "<svg version=\"1.1\" baseProfile=\"full\" xmlns=\"http://www.w3.org/2000/svg\">\n" +
                "<polygon id=\"triangle\" points=\"0,0 0,50 50,0\" fill=\"#009900\" stroke=\"#004400\"/>\n" +
                "<script type=\"text/javascript\">\n" +
                "alert('Hello, world!');\n" +
                "</script>\n" +
                "</svg>";
        ValidationResult validation = svgSecurityValidator.validate(svg);
        if (validation.hasViolations()) {
            throw new RuntimeException("this file is suspicious" + validation.getOffendingElements());
        }

Si vous souhaitez autoriser d'autres éléments/attributs (potentiellement non sûrs), utilisez

ValidationResult detect = SvgSecurityValidator.builder()
    .withAdditionalElements(elements)
    .withAdditionalAttributes(attributes)
    .build()
    .validate(testFile);

Vous pouvez également activer une validation stricte de la syntaxe XML. L'entrée est analysée avec un analyseur durci contre les XXE (les entités externes et les DTD ne sont jamais résolues, l'expansion des entités est désactivée), et une InvalidXMLSyntaxException est levée pour du XML mal formé :

ValidationResult detect = SvgSecurityValidator.builder()
    .withSyntaxValidation()
    .build()
    .validate(testFile);

Les entrées de type String et byte[] sont prises en charge (byte[] est décodé en UTF-8).

Télécharger l’outil