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ファイルを検証するのに役立つ、シンプルで軽量なライブラリです。

リポジトリを見る
489131日前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 としてデコードされます)。

ツールをダウンロード