
OWASP Java Encoder는 Java 1.5+에서 사용할 수 있는, 사용하기 쉬운 드롭인 고성능 인코더 클래스로, 의존성이 없고 부담이 적습니다. 이 프로젝트는 Java 웹 개발자가 크로스 사이트 스크립팅(XSS)으로부터 시스템을 방어할 수 있도록 도와줍니다!
컨텍스트 기반 출력 인코딩(Contextual Output Encoding)은 크로스 사이트 스크립팅(Cross-Site Scripting)을 차단하기 위해 필요한 컴퓨터 프로그래밍 기법입니다. 이 프로젝트는 Java 1.8 이상에서 사용할 수 있는, 간단하게 바로 적용 가능한 고성능 인코더 클래스로, 부가적인 요소가 거의 없습니다.
OWASP Java Encoder에 대한 더 자세한 문서는 https://owasp.org/www-project-java-encoder/ 에서 확인하세요.
Maven Central 에서 JAR을 다운로드할 수 있습니다.
JSP 태그와 EL 함수는 encoder-jsp에서 제공되며, 다음 항목도 사용할 수 있습니다.
JAR은 Central에서도 사용할 수 있습니다.
<dependency>
<groupId>org.owasp.encoder</groupId>
<artifactId>encoder</artifactId>
<version>1.4.0</version>
</dependency>
<!-- jakarta.servlet 패키지의 Servlet Spec 5를 사용하는 경우: -->
<dependency>
<groupId>org.owasp.encoder</groupId>
<artifactId>encoder-jakarta-jsp</artifactId>
<version>1.4.0</version>
</dependency>
<!-- javax.servlet 패키지의 레거시 Servlet Spec을 사용하는 경우: -->
<dependency>
<groupId>org.owasp.encoder</groupId>
<artifactId>encoder-jsp</artifactId>
<version>1.4.0</version>
</dependency>
OWASP Java Encoder 라이브러리는 성능이나 사용 측면에서 오버헤드가 거의 없이 빠른 컨텍스트 기반 인코딩을 제공하기 위한 것입니다. 시작하려면 encoder-1.2.3.jar을 추가하고, org.owasp.encoder.Encode를 임포트한 뒤 사용하면 됩니다.
사용 예시:
PrintWriter out = ....;
out.println("<textarea>"+Encode.forHtml(userData)+"</textarea>");
인코딩할 수 있는 다양한 컨텍스트를 보려면 Encode의 javadoc을 확인하세요.
즐거운 인코딩 되세요!
encoder-jakarta-jsp 프로젝트의 테스트 케이스 때문에 프로젝트를 패키징하고 테스트하려면 Java 17이 필요합니다. 다음 명령만 실행하면 됩니다.
mvn package
Jakarta JSP 통합 테스트를 실행하여 JSP 태그와 EL이 올바르게 동작하는지 검증하려면 다음을 실행하세요.
mvn verify -PtestJakarta
| JAR | Module Name |
|---|---|
| encoder | owasp.encoder |
| encoder-jakarta-jsp | owasp.encoder.jakarta |
| encoder-jsp | owasp.encoder.jsp |
| encoder-espai | owasp.encoder.esapi |
| Lib | TagLib |
|---|---|
| encoder-jakarta-jsp | <%@taglib prefix="e" uri="owasp.encoder.jakarta"%> |
| encoder-jsp | <%@taglib prefix="e" uri="https://www.owasp.org/index.php/OWASP_Java_Encoder_Project"%> |
OWASP Java Encoder 프로젝트는 멀티 모듈 Maven 프로젝트입니다.
$ mvn package
벤치마크(현재 개선이 필요함)는 다음 명령으로 실행할 수 있습니다.
$ mvn verify -Pbenchmarks
릴리스는 central-publishing-maven-plugin을 통해 수행됩니다.
$ mvn mvn clean package deploy -DperformRelease=true
팀은 버전 1.4.0이 릴리스되었음을 알리게 되어 기쁩니다!
팀은 버전 1.3.1이 릴리스되었음을 알리게 되어 기쁩니다!
팀은 버전 1.3.0이 릴리스되었음을 알리게 되어 기쁩니다!
jakarta.servlet.*를 사용한 Servlet Spec 5 지원 추가 #75.
팀은 버전 1.2.3이 릴리스되었음을 알리게 되어 기쁩니다!
팀은 버전 1.2.2가 릴리스되었음을 알리게 되어 기쁩니다!
팀은 버전 1.2.1이 릴리스되었음을 알리게 되어 기쁩니다!
OWASP Java Encoder가 GitHub로 이동했습니다. 버전 1.2도 릴리스되었습니다!
각 API 사용에 대한 자세한 문서와 예제는 https://www.owasp.org/index.php/OWASP_Java_Encoder_Project#tab=Use_the_Java_Encoder_Project 에서 확인하세요!
버전 1.1.1이 릴리스되었음을 알리게 되어 기쁩니다. 중요한 버그 수정과 함께, 레거시 ESAPI 인코더를 OWASP Java Encoder로 대체하는 ESAPI 통합 기능이 추가되었습니다.
버전 1.1이 릴리스되었음을 알리게 되어 기쁩니다. 몇 가지 사소한 인코딩 개선과 함께 성능이 향상되었고, JSP 태그 및 함수 라이브러리가 추가되었습니다.