Difference between revisions of "Category:OWASP Enterprise Security API"

From OWASP
Jump to: navigation, search
(Architecture)
Line 22: Line 22:
 
The ESAPI covers most of the key security challenges facing application developers. ESAPI provides the capability for developers to create applications that are protected against almost all of the risks described in the OWASP [[Top Ten]]. Compare this coverage with automated scanning and static analysis tools, and then consider how your time is best spent.
 
The ESAPI covers most of the key security challenges facing application developers. ESAPI provides the capability for developers to create applications that are protected against almost all of the risks described in the OWASP [[Top Ten]]. Compare this coverage with automated scanning and static analysis tools, and then consider how your time is best spent.
  
http://owasp-esapi-java.googlecode.com/svn/trunk/doc/org/owasp/esapi/doc-files/OWASPTopTen.jpg
+
http://owasp-esapi-java.googlecode.com/svn/trunk_doc/org/owasp/esapi/doc-files/OWASPTopTen.jpg
  
 
There are two key parts to the ESAPI:
 
There are two key parts to the ESAPI:

Revision as of 16:11, 19 February 2009


PROJECT INFORMATION
Project Name OWASP Enterprise Security API (ESAPI) Project
Short Project Description

Reinventing the wheel when it comes to developing security controls for every web application or web service leads to wasted time and massive security holes. The OWASP Enterprise Security API (ESAPI) Toolkits help software developers guard against security-related design and implementation flaws. The ESAPI Toolkit architecture is very simple – a collection of classes that encapsulate the key security operations most applications need. ESAPI is designed to make it easy to retrofit security into existing applications, as well as providing a solid foundation for new development. ESAPI comes with an ESAPI filter that minimizes the changes required to your base application. There are ESAPI Toolkits for the following platforms:

  • Java EE - This version of the ESAPI Toolkit is currently available.
  • .NET - This version of the ESAPI Toolkit is currently under development.
  • PHP - This version of the ESAPI Toolkit is currently under development.

Key Project Information

Project Leader
Jeff Williams

Project Contibutors
If any, add here

Mailing List
Subscribe here
Use here

License
BSD license

Project Type
Tool

Sponsors
Aspect_logo.gif
Release Status Main Links Related Projects

Provisory Release Quality
(Waiting for Second Reviewer's assessment)
Please see here for complete information.

OWASP Top Ten
OWASP ASVS Project



Why ESAPI?

Unfortunately, the available platforms, frameworks, and toolkits (Java EE, Struts, Spring, etc...) simply do not provide enough protection. This leaves developers with responsibility for designing and building security mechanisms. This reinventing the wheel for every application leads to wasted time and massive security holes.

The cost savings through reduced development time, and the increased security due to using heavily analyzed and carefully designed security methods provide developers with a massive advantage over organizations that are trying to deal with security using existing ad hoc secure coding techniques. This API is designed to automatically take care of many aspects of application security, making these issues invisible to the developers.

Where did ESAPI come from?

The OWASP ESAPI project is led by Jeff Williams, who serves as the volunteer chair of OWASP and is the CEO of Aspect Security. Jeff is a software developer who has specialized in application security since 1995. The ESAPI is the result of over a decade of code review and penetration testing of critical enterprise applications. If you'd like to volunteer to help on the project, you can contact him at jeff.williams@owasp.org.

More information about the ESAPI can be found in the ESAPI PowerPoint presentation

Architecture

The ESAPI architecture is very simple, just a collection of classes that encapsulate the key security operations most applications need. ESAPI is designed to make it easy to retrofit security into existing applications, as well as providing a solid foundation for new development. New development projects should consider integrating ESAPI into their framework to make even more of the security happen automatically. ESAPI comes with an ESAPI filter that minimizes the changes required to your base application.

The ESAPI covers most of the key security challenges facing application developers. ESAPI provides the capability for developers to create applications that are protected against almost all of the risks described in the OWASP Top Ten. Compare this coverage with automated scanning and static analysis tools, and then consider how your time is best spent.

OWASPTopTen.jpg

There are two key parts to the ESAPI:

  • A set of interfaces
  • A reference implementation

By using the ESAPI, applications across an organization will be easier to develop, more consistent, and easier to update in a single place. The use of the ESAPI will make it much easier for static analysis tools to verify an application, as the ESAPI calls can be built into the ruleset.

Download Now

This release is the first public release and will undoubtably undergo significant revision over the coming months. We are seeking organizations willing to pilot this ESAPI and work with us to make this library better. Please contact jeff.williams@owasp.org for more information. If you're interested in application security, please join the OWASP ESAPI mailing list and help make ESAPI better!

Versions (archived source files are also available on the SVN under tags)

JAR FilesSource Files
ESAPI v1.4 Complete JAR file
JAVA 1.4 compatible JAR for ESAPI v1.4
ESAPI v1.4 Basic JAR file
Java 1.4 compatible JAR for ESAPI v1.4 (does not contain many reference implementations)
ESAPI v1.4 Source archive
Source files for ESAPI v1.4

Resources

  • If you are generating your own Javadocs for the ESAPI project, information regarding generation can be found here.

Changing/Building/Using the ESAPI

If you would like to work with the ESAPI source code, or build the project, please see here.

Using the ESAPI

If you want to see what the ESAPI is all about, and want to use the built-in implementations,

  • Download the latest version of the ESAPI JAR from above.
  • Add the ESAPI JAR to your project's build path.
  • The current ESAPI JAR has been built for Java 1.6, however support for Java 1.4.2+ is available. Please see here for information on building ESAPI for a different version of Java.
  • Use the ESAPI's Javadocs to take advantage of all the built-in functions of the ESAPI.

Running Demo App

The ESAPI Demo application has been named The ESAPI Swingset. More information about Swingset is available here.

Project Sponsors

The OWASP ESAPI project is sponsored by Aspect_logo.gif

Licensing

This project licensed under the BSD license, which is very permissive and about as close to public domain as is possible. You can use or modify ESAPI however you want, even include it in commercial products.