Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
svg-sanitizer — JavaScript、インラインイベントハンドラ、scriptタグを除去し、外部リソースの読み込みをブロックすることでXSSを防ぎ、SVGファイルをサニタイズするJavaライブラリです。 | Kitploit
ツール/GitHubGitHub/borewit/svg-sanitizer
防御ツール静的分析コード分析ウェブセキュリティユーティリティとフレームワーク
GitHubborewit/svg-sanitizer

svg-sanitizer

JavaScript、インラインイベントハンドラ、scriptタグを除去し、外部リソースの読み込みをブロックすることでXSSを防ぎ、SVGファイルをサニタイズするJavaライブラリです。

リポジトリを見る
2121日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CI Maven Central javadoc

SVG Sanitizer

SVG Sanitizer は、潜在的に危険な JavaScript を除去し、外部リソースの読み込みをブロックし、XSS (クロスサイトスクリプティング) 脆弱性を防止することで、SVG ファイルをクリーンアップするために設計された Java ライブラリです。Web 環境を含むさまざまなアプリケーションで SVG ファイルを安全に使用できるようにするのに役立ちます。

機能

  • インラインイベントハンドラや <script> タグを含む、SVG ファイル内の JavaScript を除去します。
  • 外部 URL を指す href 属性や xlink:href 属性を含む、外部リソースの読み込みをブロックします。
  • 危険な要素や属性をサニタイズすることで、XSS 脆弱性を防止します。
  • ライブラリとして Java プロジェクトに簡単に統合できます。
  • SVG がストリーミング方式でサニタイズされるため、巨大な SVG ファイルを処理できます。

使用方法

Maven 依存関係

Java プロジェクトで SVG Sanitizer を使用するには、io.github.borewit:svg-sanitizer Maven 依存関係を追加してください。

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)

指定された outputStream にサニタイズ済みの SVG を書き込みます

public static InputStream sanitize(InputStream inputStream)

フィルターとして機能し、サニタイズされた SVG を含む新しい InputStream を返します。

セキュリティに関する考慮事項

ユーザーがアップロードした SVG には、ブラウザのコンテキストで実行される可能性のある悪意のあるコンテンツが含まれていることがあります。SVG のサニタイズは重要なステップですが、完全な保護のためには他の対策と組み合わせる必要があります。 より広範な概要については、SVG セキュリティのベストプラクティスを参照してください。

ライセンス

このプロジェクトは MIT License の下でライセンスされています。

ツールをダウンロード