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

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

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

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

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

Категории

Все категории
Loading categories
svg-sanitizer — Java-библиотека, которая очищает SVG-файлы, удаляя JavaScript, встроенные обработчики событий и теги script, а также блокируя загрузку внешних ресурсов для предотвращения XSS. | Kitploit
Инструменты/GitHubGitHub/borewit/svg-sanitizer
Оборонительные ИнструментыСтатический анализАнализ КодаВеб-безопасностьУтилиты и фреймворки
GitHubborewit/svg-sanitizer

svg-sanitizer

Java-библиотека, которая очищает SVG-файлы, удаляя JavaScript, встроенные обработчики событий и теги script, а также блокируя загрузку внешних ресурсов для предотвращения XSS.

Репозиторий
2212 дней назадЕщё не проверено

Популярное

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

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

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

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

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

CI Maven Central javadoc

SVG Sanitizer

SVG Sanitizer — это Java-библиотека, предназначенная для очистки SVG-файлов путём удаления потенциально опасного JavaScript, блокировки загрузки внешних ресурсов и предотвращения уязвимостей XSS (межсайтовый скриптинг). Она полезна для обеспечения того, чтобы SVG-файлы были безопасны для использования в различных приложениях, включая веб-среды.

Возможности

  • Удаляет JavaScript из SVG-файлов, включая встроенные обработчики событий и теги <script>.
  • Блокирует загрузку внешних ресурсов, включая атрибуты href и xlink:href, указывающие на внешние URL.
  • Предотвращает уязвимости XSS путём очистки опасных элементов и атрибутов.
  • Легко интегрируется в Java-проекты в качестве библиотеки.
  • Способна обрабатывать огромные SVG-файлы, поскольку очистка SVG выполняется потоково.

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

Зависимость Maven

Чтобы использовать SVG Sanitizer в вашем Java-проекте, подключите зависимость 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();
    }
  }
}

Что выведет очищенный SVG:

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

Санитизация из InputStream в 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());
  }
}

Санитизация из InputStream в 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.");
    }
  }
}

Доступные методы

public static String sanitize(String svgContent)

Этот метод следует использовать только в том случае, если загрузка всего SVG в память не является проблемой.

public static void sanitize(InputStream inputStream, OutputStream outputStream)

Записывает очищенный SVG в указанный outputStream

public static InputStream sanitize(InputStream inputStream)

Выступает в роли фильтра, возвращая новый InputStream с очищенным SVG.

Вопросы безопасности

Загруженные пользователями SVG-файлы могут содержать вредоносное содержимое, которое может быть выполнено в контексте браузера. Санитизация SVG — важный шаг, но её следует сочетать с другими мерами для полной защиты. См. Лучшие практики безопасности SVG для более широкого обзора.

Лицензия

Этот проект распространяется под лицензией MIT License

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