Apache Commons Codec은 인코딩 및 디코딩 작업을 위한 다양한 유틸리티 기능을 제공하는 Java 라이브러리입니다. 이 라이브러리는 다양한 인코딩 형식과 디코딩 알고리즘을 지원하여 데이터를 변환하고 보호하는 데 도움이 됩니다.
HTML 인코딩
HTML 인코딩은 특수 문자를 HTML 엔티티로 변환하는 작업입니다. 이 작업은 웹 애플리케이션에서 사용자로부터 입력된 데이터의 안전한 표시를 보장하기 위해 중요합니다. Apache Commons Codec을 사용하여 HTML 인코딩을 간편하게 수행할 수 있습니다.
import org.apache.commons.codec.StringEscapeUtils;
public class HtmlEncodingExample {
public static void main(String[] args) {
String input = "<script>alert(\"XSS!\");</script>";
String encoded = StringEscapeUtils.escapeHtml(input);
System.out.println("Encoded Result: " + encoded);
}
}
위의 예제에서는 StringEscapeUtils.escapeHtml()
메서드를 사용하여 입력된 문자열을 HTML 엔티티로 인코딩합니다. 출력 결과는 다음과 같습니다:
Encoded Result: <script>alert("XSS!");</script>
인코딩된 결과를 출력하면 특수문자 <
, >
, "
이 각각 <
, >
, "
로 변환되는 것을 확인할 수 있습니다.
HTML 디코딩
HTML 디코딩은 HTML 엔티티를 원래 문자로 변환하는 작업입니다. 이 작업은 웹 애플리케이션에서 HTML 인코딩된 데이터를 다시 원래 상태로 복원하기 위해 필요합니다. Apache Commons Codec을 사용하여 HTML 디코딩을 간단하게 수행할 수 있습니다.
import org.apache.commons.codec.StringEscapeUtils;
public class HtmlDecodingExample {
public static void main(String[] args) {
String input = "<script>alert("XSS!");</script>";
String decoded = StringEscapeUtils.unescapeHtml(input);
System.out.println("Decoded Result: " + decoded);
}
}
위의 예제에서는 StringEscapeUtils.unescapeHtml()
메서드를 사용하여 HTML 엔티티로 인코딩된 문자열을 디코딩합니다. 출력 결과는 다음과 같습니다:
Decoded Result: <script>alert("XSS!");</script>
디코딩된 결과를 출력하면 HTML 엔티티로 변환된 문자열이 다시 원래의 <script>alert("XSS!");</script>
문자열로 복원된 것을 확인할 수 있습니다.
Apache Commons Codec을 사용하면 HTML 인코딩 및 디코딩을 손쉽게 수행할 수 있으며, 웹 애플리케이션에서 데이터의 안전한 처리를 위해 꼭 필요한 기능입니다.
더 자세한 정보는 공식 Apache Commons Codec 문서를 참조하세요.