blob: e7dfd4f1fda44fc4d4a330e2150538e12ce2303c [file] [log] [blame] [view]
Andrew Vuong6a309582023-03-13 22:54:17 +00001OWASP Java Encoder Project
2==========================
3
4[![Build Status](https://travis-ci.org/OWASP/owasp-java-encoder.svg?branch=main)](https://travis-ci.org/OWASP/owasp-java-encoder) [![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause) [![javadoc](https://javadoc.io/badge2/org.owasp.encoder/encoder/javadoc.svg)](https://javadoc.io/doc/org.owasp.encoder/encoder)
5
6Contextual Output Encoding is a computer programming technique necessary to stop
7Cross-Site Scripting. This project is a Java 1.5+ simple-to-use drop-in high-performance
8encoder class with little baggage.
9
10For more detailed documentation on the OWASP Javca Encoder please visit https://owasp.org/www-project-java-encoder/.
11
12Start using the OWASP Java Encoders
13-----------------------------------
14You can download a JAR from [Maven Central](https://search.maven.org/#search|ga|1|g%3A%22org.owasp.encoder%22%20a%3A%22encoder%22).
15
16JSP tags and EL functions are available in the encoder-jsp, also available in [Central](http://search.maven.org/remotecontent?filepath=org/owasp/encoder/encoder-jsp/1.2.3/encoder-jsp-1.2.3.jar).
17
18The jars are also available in Maven:
19
20```xml
21<dependency>
22 <groupId>org.owasp.encoder</groupId>
23 <artifactId>encoder</artifactId>
24 <version>1.2.3</version>
25</dependency>
26
27<dependency>
28 <groupId>org.owasp.encoder</groupId>
29 <artifactId>encoder-jsp</artifactId>
30 <version>1.2.3</version>
31</dependency>
32```
33
34Quick Overview
35--------------
36The OWASP Java Encoder library is intended for quick contextual encoding with very little
37overhead, either in performance or usage. To get started, simply add the encoder-1.2.3.jar,
38import org.owasp.encoder.Encode and start using.
39
40Example usage:
41
42```java
43 PrintWriter out = ....;
44 out.println("<textarea>"+Encode.forHtml(userData)+"</textarea>");
45```
46
47Please look at the javadoc for Encode to see the variety of contexts for which you can encode.
48
49Happy Encoding!
50
51News
52----
53### 2020-11-08 - 1.2.3 Release
54The team is happy to announce that version 1.2.3 has been released!
55* Update to make the manifest OSGi-compliant (#39).
56* Update to support ESAPI 2.2 and later (#37).
57
58### 2018-09-14 - 1.2.2 Release
59The team is happy to announce that version 1.2.2 has been released!
60* This is a minor release fixing documentation and licensing issues.
61
62### 2017-02-19 - 1.2.1 Release
63The team is happy to announce that version 1.2.1 has been released!
64* The CDATA Encoder was modified so that it does not emit intermediate characters between adjacent CDATA sections.
65* The documentation on [gh-pages](http://owasp.github.io/owasp-java-encoder/) has been improved.
66
67### 2015-04-12 - 1.2 Release on GitHub
68OWASP Java Encoder has been moved to GitHub. Version 1.2 was also released!
69
70### 2014-03-31 - Documentation updated
71Please visit https://www.owasp.org/index.php/OWASP_Java_Encoder_Project#tab=Use_the_Java_Encoder_Project to see detailed documentation and examples on each API use!
72
73### 2014-01-30 - Version 1.1.1 released
74We're happy to announce that version 1.1.1 has been released. Along with a important bug fix, we added ESAPI integration to replace the legacy ESAPI encoders with the OWASP Java Encoder.
75
76### 2013-02-14 - Version 1.1 released
77We're happy to announce that version 1.1 has been released. Along with a few minor encoding enhancements, we improved performance, and added a JSP tag and function library.