Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
safe-svg — 简单轻量的库,帮助以安全的方式验证 SVG 文件。 | Kitploit
工具/GitHubGitHub/bgalek/safe-svg
防御工具静态分析漏洞分析代码分析Web安全
GitHubbgalek/safe-svg

safe-svg

简单轻量的库,帮助以安全的方式验证 SVG 文件。

查看仓库
489272天前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 解码)。

下载工具