Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
safe-svg — 보안 측면에서 SVG 파일을 검증하는 데 도움을 주는 간단하고 가벼운 라이브러리입니다. | Kitploit
도구/GitHubGitHub/bgalek/safe-svg
Defensive ToolsStatic AnalysisVulnerability AnalysisCode AnalysisWeb Security
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로 디코딩됩니다).

도구 다운로드