bgalek/safe-svg
GitHub: bgalek/safe-svg
一个轻量级的Java安全验证库,用于检测SVG文件中的恶意内容以防止XSS攻击。
Stars: 45 | Forks: 8
# SVG 安全
[](https://github.com/bgalek/safe-svg/actions/workflows/build.yml)





[](https://sonarcloud.io/dashboard?id=bgalek_safe-svg?style=flat-square)
它将帮助您检测上传的 SVG 中的恶意内容。
## 您知道 SVG 会导致 XSS 吗?
阅读 [https://sekurak.pl/pozwalasz-ladowac-pliki-svg-masz-xss-a/](https://sekurak.pl/pozwalasz-ladowac-pliki-svg-masz-xss-a/) 了解更多详情。
## 示例
尝试将此 SVG 上传到您的应用程序,如果它顺利通过且用户可以浏览此文件 —— 您可能容易受到 XSS 攻击。
```
```
## 用法
添加库依赖:
```
compile "com.github.bgalek.security.svg:safe-svg:1.1.4"
```
您可以使用此库来检查上传的 svg 文件
```
SvgSecurityValidator svgSecurityValidator = SvgSecurityValidator.builder().build();
String svg = "\n" +
"\n" +
"";
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);
```
标签:API密钥检测, Java库, JS文件枚举, LangChain, Maven, SVG净化, SVG安全, Web安全, XSS防护, YAML, 图像处理安全, 域名枚举, 安全库, 文件上传安全, 文件验证, 漏洞防御, 漏洞验证, 矢量图形, 网络安全, 蓝队分析, 跨站脚本攻击, 轻量级, 输入验证, 隐私保护