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
safe-svg — Biblioteca simple y ligera que ayuda a validar archivos SVG de forma segura. | Kitploit
Herramientas/GitHubGitHub/bgalek/safe-svg
Herramientas DefensivasAnálisis EstáticoAnálisis de VulnerabilidadesAnálisis de CódigoSeguridad Web
GitHubbgalek/safe-svg

safe-svg

Biblioteca simple y ligera que ayuda a validar archivos SVG de forma segura.

Ver Repositorio
48926hace 2 díasRevisado por Kitploit

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 →
Sitio web
Compartir

SEGURIDAD DE SVG

Biblioteca simple y ligera que ayuda a validar archivos SVG desde el punto de vista de la seguridad.

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

Te ayudará a detectar contenido malicioso dentro de los SVG subidos.

¿Sabías que SVG puede provocar XSS?

Lee https://sekurak.pl/pozwalasz-ladowac-pliki-svg-masz-xss-a/ para más detalles.

Ejemplo

Intenta subir este SVG a tu aplicación; si pasa la validación y el usuario puede visualizar este archivo, probablemente seas vulnerable a un ataque 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>

Uso

Añade la dependencia de la biblioteca:

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

Puedes usar esta biblioteca para comprobar los archivos SVG subidos

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 quieres permitir otros elementos/atributos (posiblemente no seguros), usa

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

También puedes habilitar la validación estricta de la sintaxis XML. La entrada se analiza con un parser reforzado contra XXE (las entidades externas y los DTD nunca se resuelven, la expansión de entidades está deshabilitada), y se lanza una InvalidXMLSyntaxException para XML mal formado:

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

Se admiten entradas tanto de tipo String como byte[] (byte[] se decodifica como UTF-8).

Descargar herramienta