Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
safe-svg — Простая и лёгкая библиотека, помогающая проверять SVG-файлы с точки зрения безопасности. | Kitploit
Инструменты/GitHubGitHub/bgalek/safe-svg
Оборонительные ИнструментыСтатический анализАнализ уязвимостейАнализ КодаВеб-безопасность
GitHubbgalek/safe-svg

safe-svg

Простая и лёгкая библиотека, помогающая проверять SVG-файлы с точки зрения безопасности.

Репозиторий
489141 день назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Сайт
Поделиться

БЕЗОПАСНОСТЬ SVG

Простая и лёгкая библиотека, которая помогает проверять SVG-файлы с точки зрения безопасности.

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

Она поможет вам обнаруживать вредоносное содержимое внутри загружаемых SVG-файлов.

Знаете ли вы, что SVG может вызывать XSS?

Подробнее читайте на https://sekurak.pl/pozwalasz-ladowac-pliki-svg-masz-xss-a/.

Пример

Попробуйте загрузить этот SVG в ваше приложение: если он проходит проверку и пользователь может просмотреть этот файл — вероятно, вы уязвимы к 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>

Использование

Добавьте зависимость библиотеки:

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

Вы можете использовать эту библиотеку для проверки загружаемых SVG-файлов

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());
        }

Если вы хотите разрешить другие (возможно, небезопасные) элементы/атрибуты, используйте

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

Вы также можете включить строгую проверку синтаксиса XML. Входные данные разбираются с помощью парсера, защищённого от XXE (внешние сущности и DTD никогда не разрешаются, раскрытие сущностей отключено), и при некорректном XML выбрасывается InvalidXMLSyntaxException:

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

Поддерживаются входные данные как типа String, так и byte[] (byte[] декодируется как UTF-8).

Скачать инструмент