OWASP Projects Dashboard 2.0/By Set Up Order

Revision as of 11:16, 19 April 2011 by Paulo Coimbra (Talk | contribs)

Jump to: navigation, search
Project Leader(s) Contributor(s)
Security Ecosystem Project Jeff Williams @ This project is currently seeking volunteers. If you are interested please contact us through the mailing list.
OWASP RFP-Criteria Tom Brennan @ N/A
Owasp Esapi Ruby Paolo Perego @ Kuai Hinojosa @ Sal Scotto @ Paco Schiaffella @
OWASP Application Security Program for Manager Matteo Meucci @ Marco Morana @ Giorgio Fedon @ Stefano di Paola @
OWASP JavaScript Sandboxes Gareth Heyes @ Eduardo Vela Mario Heiderich
JSReg Gareth Heyes @ N/A
HTMLReg Gareth Heyes @ N/A
OWASP Testing Project Andrew Muller @ Matteo Meucci @ N/A
OWASP Related Commercial Services Eoin Keary @ N/A
OWASP Development Guide N/A Andrew van der Stock @ Ken Owen @
OWASP Application Security Verification Standard Project Sahba Kazerooni @ Daniel Cuthbert @ Dave Wichers @ Jeff Williams @ Mike Boberski
OWASP Code Review Project Larry Conklin @ N/A
OWASP ModSecurity Core Rule Set Project Ryan Barnett @ Breno Silva
OWASP Alchemist Project Naveen Rudrappa @ Chandrakanth Reddy Narreddy @ Bishan Singh @ N/A
OWASP Secure Coding Practices - Quick Reference Guide Keith Turpin @ Dan Kranz Walt Pietrowski Catherine Spencer Caleb McGary @ Jim Manico @ Brad Causey @ Ludovic Petit @ Michael V. Scovetta @ Jason Coleman Tarcizio Vieira Neto
OWASP Student Chapters Program Mateo Martinez @ N/A
OWASP CTF Project Steven van der Baan @ Martin Knobloch @ Brad Causey @ Ralf Allar @ Andres Riancho @ Danny Chrastil
OWASP Enterprise Application Security Project Alexander Polyakov @ Dmitriy Evdokimov @ Dmitriy Chastuhin @ Alexey Sintsov @ Michail Markevich
OWASP Browser Security Project N/A N/A

OWASP Inactive Banner.jpg
OWASP Uniform Reporting Guidelines Vlad Gostomelsky @ N/A
OWASP Secure Web Application Framework Manifesto Rohit Sethi @ Yuk Fai Chan @ Tom Aratyn @ Sahba Kazerooni @ Patrick Szeto @
OWASP Mobile Security Project Jack Mannino (Overall Project and GoatDroid Leader) @ Mike Zusman (Mobile Cheat Sheet Leader) @ Tony DeLaGrange (MobiSec Leader) @ Sarath Geethakumar (Mobile Device Management Leader) @ Tom Eston (Mobile Threat Model Leader) @ Don Williams (Mobile Testing Leader) Jason Haddix (Mobile Top Ten) @ Zach Lanier @ Jim Manico @ Ludovic Petit @ Swapnil Deshmukh @ Beau Woods @
OWASP O2 Platform Project Dinis Cruz @ N/A
OWASP Zed Attack Proxy Project Psiinon @ N/A
OWASP AppSensor Project Michael Coates @ John Melton @ Colin Watson @ Dennis Groves @ Ryan Barnett @ Simon Bennetts August Detlefsen Randy Janida Jim Manico @ Giri Nambari Eric Sheridan Kevin Wall Dennis Groves
OWASP JBroFuzz Project Ranulf Green @ Yiannis Pavlosoglou @ Markus Miedaner @
OWASP Watcher Project Chris Weber @ N/A
OWASP X5s Project Chris Weber @ N/A
OWASP Application Security Skills Assessment Neil Smithline @ N/A
OWASP Common Numbering Project Dave Wichers (ASVS) @ Jeff Williams (ASVS) @ Vishal Garg (Development Guide) @ Eoin Keary (Code Review Guide) @ Matteo Meucci (Testing Guide) @ Keith Turpin (Secure Coding Quick Reference) @ Brad Causey (Global Projects Commitee) @ Rick Mitchell
OWASP HTTP Post Tool Tom Brenann @ N/A
OWASP Forward Exploit Tool Project Marcos Mateos Garcia @ N/A
OWASP Java XML Templates Project Jeff Ichnowski @ N/A
OWASP ASIDE Project Jun Zhu @ Bill Chu @ Jing Xie @ N/A
OWASP Secure Password Project Josh Sokol @ James Wickett @ Matt Tesauro @ Ben Broussard @ Genung Gregory @
OWASP Secure the Flag Competition Project Mark Bristow @ N/A
OWASP Security Baseline Project Marian Ventuneac @ N/A
OWASP ESAPI Objective - C Project Deepak Subramanian @ N/A
What does this OWASP project offer you?
What releases are available for this project?
what is this project?
Name: OWASP Academy Portal Project (home page)
Purpose: Creation of a Portal to offer academic material in usable blocks, lab's, video's and forum.
License: Choose wisely
who is working on this project?
Project Leader(s):
Project Contributor(s):
how can you learn more?
Project Pamphlet: Not Yet Created
Project Presentation:
Mailing list: Mailing List Archives
Project Roadmap: View
Key Contacts
  • Contact the GPC to report a problem or concern about this project or to update information.
current release
Not Yet Published
last reviewed release
Not Yet Reviewed

other releases
OWASP Exams Project Jason Taylor @ N/A
OWASP Portuguese Language Project Carlos Serrão @ Marcio Machry @ Lucas Ferreira @
OWASP Browser Security ACID Tests Project Dave Wichers (as coproject manager) @ John Wilander (as coproject manager) @ David Lindsay (as technical lead) @ Isaac Dawson @
OWASP Web Browser Testing System Project Isaac Dawson @ N/A
OWASP Java Project Mirko Richter @ N/A
OWASP Myth Breakers Project Stefano Di Paola @ Dinis Cruz @ N/A
What does this OWASP project offer you?
What releases are available for this project?
what is this project?
Name: OWASP LAPSE Project (home page)
Purpose: LAPSE stands for a Lightweight Analysis for Program Security in Eclipse. LAPSE is designed to help with the task of auditing Java EE Applications for common types of security vulnerabilities found in Web Applications. LAPSE was developed by Benjamin Livshits as part of the Griffin Software Security Project. The project's second push is being led by Pablo Martín Pérez, Evalues Lab ICT Security Researcher, developing LAPSE+, an enhanced version of LAPSE.
License: GNU General Public License v3
who is working on this project?
Project Leader(s):
  • Gregory Disney-Leugers @
how can you learn more?
Project Pamphlet: Not Yet Created
Project Presentation:
Mailing list: Mailing List Archives
Project Roadmap: View
Main links:
Key Contacts
  • Contact Gregory Disney-Leugers @ to contribute to this project
  • Contact Gregory Disney-Leugers @ to review or sponsor this project
  • Contact the GPC to report a problem or concern about this project or to update information.
current release
LapsePlus 2.8.1 - March 2011 - (download)
Release description: LAPSE+ is a security scanner for detecting vulnerabilities of untrusted data injection in Java EE Applications. It has been developed as a plugin for Eclipse Java Development Environment, working specifically with Eclipse Helios and Java 1.6 or higher. LAPSE+ is based on the GPL software LAPSE, developed by the SUIF Compiler Group of Stanford University. This new release of the plugin developed by Evalues Lab of Universidad Carlos III de Madrid provides more features to analyze the propagation of the malicious data through the application and includes the identification of new vulnerabilities.
Rating: Yellow button.JPG Not Reviewed - Assessment Details
last reviewed release
Not Yet Reviewed

other releases
OWASP Software Security Assurance Process Mateo Martínez @ Martin Pellegrino
OWASP Enhancing Security Options Framework (ESOP Framework) Amber Marfatia @ N/A
OWASP German Language Project Matthias Rohr @ N/A
OWASP Mantra - Security Framework Abhi M BalaKrishnan @ N/A

OWASP Project Header.jpg

OWASP HTML Sanitizer Project

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. 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. This code was written with security best practices in mind, has an extensive test suite, and has undergone adversarial security review. A great place to get started using the OWASP Java HTML Sanitizer is here: https://code.google.com/p/owasp-java-html-sanitizer/wiki/GettingStarted.


  • Provides 4X the speed of AntiSamy sanitization in DOM mode and 2X the speed of AntiSamy in SAX mode.
  • Very easy to use. It allows for simple programmatic POSITIVE policy configuration (see below). No XML config.
  • Actively maintained by Mike Samuel from Google's AppSec team!
  • Passing 95+% of AntiSamy's unit tests plus many more.
  • This is code from the Caja project that was donated by Google. It is rather high performance and low memory utilization.
  • Java 1.5+


The OWASP HTML Sanitizer is free to use and is dual licensed under the Apache 2 License and the New BSD License.

What is this?

The OWASP HTML Sanitizer Projects provides Java based HTML sanitization of untrusted HTML!

Code Repo

OWASP HTML Sanitizer at Google Code

Email List

Questions? Please sign up for our Project Support List

Project Leaders

Author/Project Leader
Mike Samuel @

Project Manager
Jim Manico @

Related Projects


Quick Download

v239 at Maven Central
JavaDoc v239

News and Events

  • [2 July 2014] v239 Released
  • [3 Mar 2014] v226 Released
  • [5 Feb 2014] New Wiki
  • [4 Sept 2013] v209 Released

Change Log

For recent release notes, please visit the changelog on Google Code.


Owasp-incubator-trans-85.png Owasp-builders-small.png
Apache 2 License
Project Type Files CODE.jpg

You can use prepackaged policies here: http://owasp-java-html-sanitizer.googlecode.com/svn/trunk/distrib/javadoc/org/owasp/html/Sanitizers.html.

PolicyFactory policy = Sanitizers.FORMATTING.and(Sanitizers.LINKS);
String safeHTML = policy.sanitize(untrustedHTML);

or the tests show how to configure your own policy here: http://code.google.com/p/owasp-java-html-sanitizer/source/browse/trunk/src/tests/org/owasp/html/HtmlPolicyBuilderTest.java

PolicyFactory policy = new HtmlPolicyBuilder()
String safeHTML = policy.sanitize(untrustedHTML);

or you can write custom policies to do things like changing h1s to divs with a certain class:

PolicyFactory policy = new HtmlPolicyBuilder()
       new ElementPolicy() {
         public String apply(String elementName, List<String> attrs) {
           attrs.add("header-" + elementName);
           return "div";
       }, "h1", "h2", "h3", "h4", "h5", "h6"))
String safeHTML = policy.sanitize(untrustedHTML);


OWASP Project Header.jpg

OWASP Java Encoder Project

The OWASP Java Encoder is a Java 1.5+ simple-to-use drop-in high-performance encoder class with no dependencies and little baggage. This project will help Java web developers defend against Cross Site Scripting!


Contextual Output Encoding is a computer programming technique necessary to stop Cross Site Scripting. This project is a Java 1.5+ simple-to-use drop-in high-performance encoder class with no dependencies and little baggage. It provides numerous encoding functions to help defend against XSS in a variety of different HTML, JavaScript, XML and CSS contexts.

Quick Overview

The OWASP Java Encoder library is intended for quick contextual encoding with very little overhead, either in performance or usage. To get started, simply add the encoder-1.1.1.jar, import org.owasp.encoder.Encode and start encoding.

Please look at the javadoc for Encode to see the variety of contexts for which you can encode. Tag libraries and JSP EL functions can be found in the encoder-jsp-1.1.1.jar.

If you want to try it out or see it in action, head over to "Can You XSS This? (.com)" and hit it with your best XSS attack vectors!

Happy Encoding!


The OWASP Java Encoder is free to use under the New BSD License.

What is this?

The OWASP Java Encoder provides:

  • Output Encoding functions to help stop XSS
  • Java 1.5+ standalone library

Code Repo

Java Encoder at Google Code

Mailing List

Java Encoder Mailing List

Project Leaders

Author: Jeff Ichnowski @
PM: Jim Manico @


Jeremy Long

Related Projects

Quick Download

News and Events

  • [20 Mar 2014] Doc additions
  • [5 Feb 2014] New Wiki
  • [4 Feb 2014] 1.1.1 Released

In Print

We will be releasing a user guide soon!


Owasp-incubator-trans-85.png Owasp-builders-small.png
New BSD License
Project Type Files CODE.jpg

Use the Java Encoder Project

The general API pattern is to utilize the Java Encoder Project in your user interface code and wrap all variables added dynamically to HTML with a proper encoding function. The encoding pattern is "Encode.forContextName(untrustedData)", where "ContextName" is the name of the target context and "untrustedData" is untrusted output.

Basic HTML Context

<body><%= Encode.forHtml(UNTRUSTED) %></body>

HTML Content Context

<textarea name="text"><%= Encode.forHtmlContent(UNTRUSTED) %></textarea>

HTML Attribute context

<input type="text" name="address" value="<%= Encode.forHtmlAttribute(UNTRUSTED) %>" />

Generally Encode.forHtml(UNTRUSTED) is also safe but slightly less efficient for the above two contexts (for textarea content and input value text) since it encodes more characters than necessary but might be easier for developers to use.

CSS contexts

<div style="width:<= Encode.forCssString(UNTRUSTED) %>">
<div style="background:<= Encode.forCssUrl(UNTRUSTED) %>">

Javascript Block context

 <script type="text/javascript">
 var msg = "<%= Encode.forJavaScriptBlock(UNTRUSTED) %>";

Javascript Variable context

 onclick="alert('<%= Encode.forJavaScriptAttribute(UNTRUSTED) %>');">
 click me</button>

JavaScript Content Notes: Encode.forJavaScript(UNTRUSTED) is safe for the above two contexts, but encodes more characters and is less efficient.

Encode URL parameter values

<a href="/search?value=<%= Encode.forUriComponent(UNTRUSTED) %>&order=1#top">

Encode REST URL parameters

<a href="/page/<%= Encode.forUriComponent(UNTRUSTED) %>">

Handling an Full Untrusted URL

When handling a full url with the OWASP Java encoder, first verify the URL is a legal URL.

String url = validateURL(untrustedInput);

Then encode the URL as an HTML attribute when outputting to the page. Note the linkable text needs to be encoded in a different context.

 <a href="<%= Encode.forHtmlAttribute(untrustedUrl) %>">
 <%= Encode.forHtmlContent(untrustedLinkName) %>

To use in a JSP with EL

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
<%@taglib prefix="e" uri="https://www.owasp.org/index.php/OWASP_Java_Encoder_Project" %>
       <title><e:forHtml value="${param.title}" /></title>

Other contexts can be found in the org.owasp.Encode class methods, including CSS strings, CSS urls, XML contexts, URIs and URI components.

Deploy the Java Encoder Project

The OWASP Java Encoder version 1.1.1 is now available in central!

OWASP Encoder at Maven Central.


Direct Download: encoder-1.1.1.jar



JSP Tag Library

Direct Download: encoder-jsp-1.1.1.jar



Grave Accent Issue

The following describes the Grave Accent XSS issue with unpatched versions of Internet Explorer. Thank you to Rafay Baloch for bringing this to our attention and to Jeff Ichnowski for the workaround.


The grave accent (`), ASCII 96, hex 60 (wikipedia) is subject to a critical flaw in unpatched Internet Explorer. There is no possible encoding of the character that can avoid the issue. For a more in depth presentation on the issue discussed herein, please see Mario Heidrech's presentation.


In Internet Explorer, the grave accent is usable as an HTML attribute quotation character, equivalent to single and double quotes. Specifically, IE treats the following as equivalent:

<body><%= Encode.forHtml(textValue) %>" /></body>
<input value="this is the value">
<input value=`this is the value`>

It is an IE extension, is not in HTML specifications (HTML4, HTML5), and is probably not well supported in other browsers.

The Issue

The following HTML snippet, demonstrates the cross-site scripting vulnerability related to grave accents on unpatched Internet Explorer:

<input value="``onmouseover=alert(1)">

When this snippet is run in Internet Explorer the following steps happen:

  1. Two div elements are created with id's "a" and "b"
  2. The script executes "a.innerHTML" which returns:
<input value=``onmouseover=alert(1)>
  1. The script sets "b.innerHTML" to the value from (2) and is converted to the DOM equivalent of
<input value="" onmouseover="alert(1)">

The XSS issue arises from IE returning a value from innerHTML that it does not parse back into the original DOM. Patched version of IE fix this issue by returning the XSS value as a double-quoted attribute. The issue is complicated by the fact that no possible encoding of the grave accent can avoid this issue.


<input value="``onmouseover=alert(1)">

...is the input, "a.innerHTML" returns the same XSS vector as it does without the encoding.

Recommend Solution

Our recommended workaround is to update any JavaScript based innerHTML read to replace the accent grave with a numeric entity encoded form: "`". As an example, the following change to the XSS vulnerable code above fixes the issue:

<script>a.innerHTML=b.innerHTML.replace(/`/g, "`");</script>

This can be done in any library code that reads the innerHTML. To follow how this addresses the issue, the innerHTML from step 2 of the issue is converted to:

<input value=&#96;&#96;onmouseover=alert(1)>

Since the browser will no longer see the grave accents as an empty attribute, it will convert the input back to a copy of its original DOM.

Other Possible Solutions

As there is no encoding option available, the following options are available to web application authors:

  1. Do not use innerHTML copies
  2. Filter out the accent grave from any user input
  3. Clean up grave accents when using an innerHTML copy

OWASP Java Encoder Library Related Changes

The OWASP Java Encoder Library at its core is intended to be a XSS safe _encoding_ library. The grave accent is a legitimate and frequently used character, that cannot be encoded to avoid this bug in unpatched versions of IE. With enough user feedback, we may update the library to include one of the following options: (1) alternate, drop-in build that filters grave accents, with unchanged API, (2) new filtering methods.

OWASP WebScarab NG Project Daniel Brzozowski @ Rogan Dawes (Past Contributor) @
OWASP Threat Modelling Project Anurag Agarwal @ N/A
OWASP Application Security Assessment Standards Project Matteo Michelini @ N/A
OWASP Hackademic Challenges Project Konstantinos Papapanagiotou @ Spyros Gasteratos @ Andreas Venieris (Core Developer) (Founder) @ Alex Papanikolaou @ Vasileios Vlachos @ Anastasios Stasinopoulos (Founder) @
OWASP Hatkit Proxy Project Martin Holst Swende @ N/A
OWASP Hatkit Datafiddler Project Martin Holst Swende @ N/A
OWASP ESAPI Swingset Interactive Project Fabio Cerullo @ Cathal Courtney @ N/A
OWASP ESAPI Swingset Demo Project Craig Younkins @ N/A
OWASP Web Application Security Accessibility Project Petr Závodský @ Jan Meszáros Tomáš Bakos Jakub Tomšej TEREZA
OWASP Cloud ‐ 10 Project Vinay Bansal @ Shankar Babu Chebrolu @ Pankaj Telang Ken Huang Ove Hansen Ludovic Petit @