<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rgm</id>
		<title>OWASP - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rgm"/>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php/Special:Contributions/Rgm"/>
		<updated>2026-05-15T18:57:29Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.2</generator>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Java_HTML_Sanitizer_Project&amp;diff=205211</id>
		<title>OWASP Java HTML Sanitizer Project</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Java_HTML_Sanitizer_Project&amp;diff=205211"/>
				<updated>2015-12-14T21:57:19Z</updated>
		
		<summary type="html">&lt;p&gt;Rgm: Correct changelog link (.html to .md)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Main = &lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;height:160px;border:0,margin:0;overflow: hidden;&amp;quot;&amp;gt;[[File:OWASP_Project_Header.jpg|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;padding: 0;margin:0;margin-top:10px;text-align:left;&amp;quot; |-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
== OWASP HTML Sanitizer Project ==&lt;br /&gt;
&lt;br /&gt;
The OWASP HTML Sanitizer is a fast and easy to configure HTML Sanitizer written in Java which lets you include HTML authored by third-parties in your web application while protecting against XSS.&lt;br /&gt;
The existing dependencies are on guava and JSR 305. The other jars are only needed by the test suite. The JSR 305 dependency is a compile-only dependency, only needed for annotations.&lt;br /&gt;
This code was written with security best practices in mind, has an extensive test suite, and has undergone adversarial security review.&lt;br /&gt;
A great place to get started using the OWASP Java HTML Sanitizer is here: https://github.com/OWASP/java-html-sanitizer/blob/master/docs/getting_started.md.&lt;br /&gt;
&lt;br /&gt;
== Benefits ==&lt;br /&gt;
* Provides 4X the speed of [https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project AntiSamy] sanitization in DOM mode and 2X the speed of AntiSamy in SAX mode.&lt;br /&gt;
* Very easy to use. It allows for simple programmatic POSITIVE policy configuration (see below). No XML config.&lt;br /&gt;
* Actively maintained by Mike Samuel from Google's AppSec team!&lt;br /&gt;
* Passing 95+% of AntiSamy's unit tests plus many more.&lt;br /&gt;
* This is code from the Caja project that was donated by Google. It is rather high performance and low memory utilization.&lt;br /&gt;
* Java 1.5+&lt;br /&gt;
&lt;br /&gt;
==Licensing==&lt;br /&gt;
The OWASP HTML Sanitizer is free to use and is dual licensed under the [http://www.apache.org/licenses/LICENSE-2.0 Apache 2 License] and the [http://opensource.org/licenses/BSD-3-Clause New BSD License].&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
== What is this? ==&lt;br /&gt;
&lt;br /&gt;
The OWASP HTML Sanitizer Projects provides Java based HTML sanitization of untrusted HTML!&lt;br /&gt;
&lt;br /&gt;
== Code Repo ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/owasp/java-html-sanitizer OWASP HTML Sanitizer at GitHub]&lt;br /&gt;
&lt;br /&gt;
== Email List ==&lt;br /&gt;
&lt;br /&gt;
Questions? Please sign up for our [https://groups.google.com/forum/#!forum/owasp-java-html-sanitizer-support Project Support List ]&lt;br /&gt;
&lt;br /&gt;
== Project Leaders ==&lt;br /&gt;
&lt;br /&gt;
Author/Project Leader&amp;lt;br/&amp;gt;[https://www.owasp.org/index.php/User:Mike_Samuel Mike Samuel] [mailto:mikesamuel@gmail.com @]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Project Manager&amp;lt;br/&amp;gt;[https://www.owasp.org/index.php/User:Jmanico Jim Manico] [mailto:jim.manico@owasp.org @]&lt;br /&gt;
&lt;br /&gt;
== Related Projects ==&lt;br /&gt;
&lt;br /&gt;
* [[XSS (Cross Site Scripting) Prevention Cheat Sheet]]&lt;br /&gt;
* [[OWASP JSON Sanitizer]]&lt;br /&gt;
* [[OWASP Java Encoder Project]]&lt;br /&gt;
* [[OWASP Dependency Check]]&lt;br /&gt;
* [https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project OWASP AntiSamy] &lt;br /&gt;
* [https://github.com/sourceclear/headlines Sourceclear Headlines]&lt;br /&gt;
* [https://code.google.com/p/keyczar/ Google KeyCzar]&lt;br /&gt;
* [http://shiro.apache.org/ Apache SHIRO]&lt;br /&gt;
&lt;br /&gt;
== Ohloh ==&lt;br /&gt;
&lt;br /&gt;
*https://www.ohloh.net/p/owasp-java-html-sanitizer&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
== Quick Download ==&lt;br /&gt;
&lt;br /&gt;
[https://search.maven.org/remotecontent?filepath=com/googlecode/owasp-java-html-sanitizer/owasp-java-html-sanitizer/r239/owasp-java-html-sanitizer-r239.jar v239 at Maven Central]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://owasp-java-html-sanitizer.googlecode.com/svn/trunk/distrib/javadoc/index.html JavaDoc v239]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== News and Events ==&lt;br /&gt;
* [1 May 2015] Move to GitHub&lt;br /&gt;
* [2 July 2014] v239 Released&lt;br /&gt;
* [3 Mar 2014] v226 Released&lt;br /&gt;
* [5 Feb 2014] New Wiki&lt;br /&gt;
* [4 Sept 2013] v209 Released&lt;br /&gt;
&lt;br /&gt;
== Change Log ==&lt;br /&gt;
For recent release notes, please visit the [https://github.com/OWASP/java-html-sanitizer/blob/master/change_log.md changelog on GitHub].&lt;br /&gt;
&lt;br /&gt;
==Classifications==&lt;br /&gt;
&lt;br /&gt;
   {| width=&amp;quot;200&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
   |-&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot; rowspan=&amp;quot;2&amp;quot;| [[File:Owasp-incubator-trans-85.png|link=https://www.owasp.org/index.php/OWASP_Project_Stages#tab=Incubator_Projects]]&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;| [[File:Owasp-builders-small.png|link=]]  &lt;br /&gt;
   |-&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;| [[File:Owasp-defenders-small.png|link=]]&lt;br /&gt;
   |-&lt;br /&gt;
   | colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;  | [http://www.apache.org/licenses/LICENSE-2.0 Apache 2 License]&lt;br /&gt;
   |-&lt;br /&gt;
   | colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;  | [[File:Project_Type_Files_CODE.jpg|link=]]&lt;br /&gt;
   |}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Creating a HTML Policy =&lt;br /&gt;
&lt;br /&gt;
You can use prepackaged policies here: [https://github.com/OWASP/java-html-sanitizer/blob/master/src/main/java/org/owasp/html/Sanitizers.java https://github.com/OWASP/java-html-sanitizer/blob/master/src/main/java/org/owasp/html/Sanitizers.java].&lt;br /&gt;
&lt;br /&gt;
 PolicyFactory policy = Sanitizers.FORMATTING.and(Sanitizers.LINKS);&lt;br /&gt;
 String safeHTML = policy.sanitize(untrustedHTML);&lt;br /&gt;
&lt;br /&gt;
or the tests show how to configure your own policy here: [https://github.com/OWASP/java-html-sanitizer/blob/master/src/test/java/org/owasp/html/HtmlPolicyBuilderTest.java https://github.com/OWASP/java-html-sanitizer/blob/master/src/test/java/org/owasp/html/HtmlPolicyBuilderTest.java]&lt;br /&gt;
&lt;br /&gt;
 PolicyFactory policy = new HtmlPolicyBuilder()&lt;br /&gt;
    .allowElements(&amp;quot;a&amp;quot;)&lt;br /&gt;
    .allowUrlProtocols(&amp;quot;https&amp;quot;)&lt;br /&gt;
    .allowAttributes(&amp;quot;href&amp;quot;).onElements(&amp;quot;a&amp;quot;)&lt;br /&gt;
    .requireRelNofollowOnLinks()&lt;br /&gt;
    .build();&lt;br /&gt;
 String safeHTML = policy.sanitize(untrustedHTML);&lt;br /&gt;
&lt;br /&gt;
... or you can write custom policies to do things like changing h1s to divs with a certain class ...&lt;br /&gt;
&lt;br /&gt;
 PolicyFactory policy = new HtmlPolicyBuilder()&lt;br /&gt;
    .allowElements(&amp;quot;p&amp;quot;)&lt;br /&gt;
    .allowElements(&lt;br /&gt;
        new ElementPolicy() {&lt;br /&gt;
          public String apply(String elementName, List&amp;lt;String&amp;gt; attrs) {&lt;br /&gt;
            attrs.add(&amp;quot;class&amp;quot;);&lt;br /&gt;
            attrs.add(&amp;quot;header-&amp;quot; + elementName);&lt;br /&gt;
            return &amp;quot;div&amp;quot;;&lt;br /&gt;
          }&lt;br /&gt;
        }, &amp;quot;h1&amp;quot;, &amp;quot;h2&amp;quot;, &amp;quot;h3&amp;quot;, &amp;quot;h4&amp;quot;, &amp;quot;h5&amp;quot;, &amp;quot;h6&amp;quot;))&lt;br /&gt;
    .build();&lt;br /&gt;
 String safeHTML = policy.sanitize(untrustedHTML);&lt;br /&gt;
&lt;br /&gt;
You can also use the default &amp;quot;ebay&amp;quot; and &amp;quot;slashdot&amp;quot; policies. The Slashdot policy (defined here https://github.com/OWASP/java-html-sanitizer/blob/master/src/main/java/org/owasp/html/examples/SlashdotPolicyExample.java) allows the following tags (&amp;quot;a&amp;quot;, &amp;quot;p&amp;quot;, &amp;quot;div&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;em&amp;quot;, &amp;quot;blockquote&amp;quot;, &amp;quot;tt&amp;quot;, &amp;quot;strong&amp;quot;n &amp;quot;br&amp;quot;, &amp;quot;ul&amp;quot;, &amp;quot;ol&amp;quot;, &amp;quot;li&amp;quot;) and only certain attributes. This policy also allows for the custom slashdot tags, &amp;quot;quote&amp;quot; and &amp;quot;ecode&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= Questions =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;How was this project tested?&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
This code was written with security best practices in mind, has an extensive test suite, and has undergone [https://github.com/OWASP/java-html-sanitizer/blob/master/docs/attack_review_ground_rules.md adversarial security review].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;How is this project deployed?&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
This project is best deployed through Maven [https://github.com/OWASP/java-html-sanitizer/blob/master/docs/getting_started.md https://github.com/OWASP/java-html-sanitizer/blob/master/docs/getting_started.md]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__ &amp;lt;headertabs/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP_Tool]] &lt;br /&gt;
[[Category:OWASP_Alpha_Quality_Tool]] &lt;br /&gt;
[[Category:OWASP_Project|Java HTML Sanitizer]]&lt;/div&gt;</summary>
		<author><name>Rgm</name></author>	</entry>

	</feed>