티스토리 뷰

간단하게 테스트로 해보려고 했다

owasp-java-htm-sanitizer-20260313.1.jar 를 다운받아서 해봤는데 아래와 같은 에러가 났다.

NoClassDefFoundError: org/owasp/shim/Java8Shim

그래서 검색을 해봤더니, 안정적인 owasp-java-htm-sanitizer-20220608.1.jar 를 받아서 해보라는 거였다. 했는데 안됬다. 제미나이에서 검색을 해봤더니, guava도 받아야 된다고 한다. 그래서 guava-33.6.0.-jre.jar를 다운받았다.

그 2개를 lib에 넣고 해봤더니 잘 되었다.

네, JAR 파일로 제공됩니다. Maven Central 중앙 저장소에서 독립된 .jar 파일들을 직접 다운로드하여 사용할 수 있습니다.

폐쇄망 환경이나 수동으로 외부 라이브러리를 추가해야 하는 경우, 다음 핵심 JAR 파일들을 준비하시면 됩니다.

1. 필수 다운로드 JAR 목록

OWASP Java HTML Sanitizer를 작동시키려면 기본 라이브러리 JAR 1개의존성(Dependency) JAR 2개, 총 3개의 JAR 파일이 필요합니다.

분류Artifact Name권장 버전설명
메인 라이브러리 java-html-sanitizer 20240325.1 (또는 최신) OWASP HTML Sanitizer Core
의존성 1 guava 33.x.x 이상 Google Core Libraries for Java
의존성 2 jsr305 3.0.2 Nullability Annotation 관련 라이브러리
 

2. JAR 파일 직접 다운로드 방법 (Maven Central)

Maven이나 Gradle 같은 빌드 도구를 사용할 수 없는 환경이라면, Maven Central Repository에서 직접 검색하여 .jar 파일만 다운로드받을 수 있습니다.

  1. java-html-sanitizer JAR:
  2. 의존성 JAR (guava, jsr305):
    • 프로젝트 내에 이미 Guava 라이브러리가 포함되어 있다면 추가로 받지 않으셔도 됩니다.
    • 없는 경우 동일하게 MVNRepository에서 guava 및 jsr305를 검색하여 .jar 파일로 받으시면 됩니다.

3. Java 프로젝트 적용 및 간단 사용 예시

다운로드한 JAR 파일들을 프로젝트의 /WEB-INF/lib/ 경로에 추가(Build Path 등록)한 뒤 다음과 같이 사용할 수 있습니다.

Java
 
import org.owasp.html.HtmlPolicyBuilder;
import org.owasp.html.PolicyFactory;

public class SanitizerExample {
    public static void main(String[] args) {
        // 1. 허용할 HTML 태그 및 속성 정의 (예: b, i, a 태그만 허용)
        PolicyFactory policy = new HtmlPolicyBuilder()
                .allowElements("b", "i", "a")
                .allowUrlProtocols("http", "https")
                .allowAttributes("href").onElements("a")
                .toFactory();

        // 2. 위험한 입력값
        String untrustedHtml = "<script>alert('XSS')</script> <b>안녕하세요</b> <a href='javascript:evil()'>링크</a>";

        // 3. Sanitizer 적용
        String sanitizedHtml = policy.sanitize(untrustedHtml);

        // 출력 결과: <b>안녕하세요</b> <a>링크</a>  (<script> 및 javascript: 스킴 제거됨)
        System.out.println(sanitizedHtml);
    }
}
폐쇄망 환경에서 Maven 종속성(JAR)을 한 번에 패키징해서 다운로드하는 방법이 궁금하신가요?
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/08   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함