This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org

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

From OWASP
Jump to: navigation, search
Line 5: Line 5:
 
* '''PHP''' - This version of the ESAPI Toolkit is currently under development.|  
 
* '''PHP''' - This version of the ESAPI Toolkit is currently under development.|  
  
Proj_Contributors= Project Leader<br>[[:User:Jeff Williams|Jeff Williams]]<br><br>Project Contibutors<br>[[User:Jmanico|Jim Manico]] <br>[[User:Wichers|Dave Wichers]]<br> [[User:Arshan|Arshan Dabirsiaghi]] <br> [[User:Jerryhoff|Jerry Hoff]] |
+
Proj_Contributors= Project Leader<br>[[:User:Jeff Williams|Jeff Williams]]<br><br>Project Contributors<br>[[User:Jmanico|Jim Manico]] <br>[[User:Wichers|Dave Wichers]]<br> [[User:Arshan|Arshan Dabirsiaghi]] <br> [[User:Jerryhoff|Jerry Hoff]] |
  
Proj_Lists= [https://lists.owasp.org/mailman/listinfo/owasp-esapi '''Subscribe here''']<br>[mailto:[email protected] '''Use here'''] |
+
Proj_Lists= [http://lists.owasp.org/mailman/listinfo/owasp-esapi '''Subscribe here''']<br>[mailto:[email protected] '''Use here'''] |
  
 
Proj_License= [http://en.wikipedia.org/wiki/BSD_license '''BSD license'''] |
 
Proj_License= [http://en.wikipedia.org/wiki/BSD_license '''BSD license'''] |
Line 13: Line 13:
 
Proj_Type= [[:Category:OWASP_Project#Release Quality Projects|'''Tool''']] |
 
Proj_Type= [[:Category:OWASP_Project#Release Quality Projects|'''Tool''']] |
  
Proj_Sponsor= <div style="background:#ffffff">[http://www.aspectsecurity.com/ https://www.owasp.org/images/d/d1/Aspect_logo.gif]</div> |
+
Proj_Sponsor= <div style="background:#ffffff">[http://www.aspectsecurity.com/ http://www.owasp.org/images/d/d1/Aspect_logo.gif]</div> |
  
 
Proj_Status= Provisory '''[[:Category:OWASP Project Assessment#Release Quality Tool Criteria|Release Quality]]'''<br>(Waiting for Second Reviewer's assessment)<br>[[:OWASP Enterprise Security API Project - Assessment Frame|Please see here for complete information.]] |
 
Proj_Status= Provisory '''[[:Category:OWASP Project Assessment#Release Quality Tool Criteria|Release Quality]]'''<br>(Waiting for Second Reviewer's assessment)<br>[[:OWASP Enterprise Security API Project - Assessment Frame|Please see here for complete information.]] |
  
Proj_Links= [http://owasp-esapi-java.googlecode.com/svn/trunk/documentation/OWASP%20ESAPI%20Overview.pptx ESAPI PowerPoint presentation]<br>[http://www.youtube.com/watch?v=QAPD1jPn04g ESAPI Video presentation]<br>ESAPI Demo application - [[ESAPI_Swingset|The ESAPI Swingset]]<br>JAVA 1.4 compatible JAR for ESAPI v1.4 - [http://owasp-esapi-java.googlecode.com/files/owasp-esapi-full-java-1.4.jar Complete] & [http://owasp-esapi-java.googlecode.com/files/owasp-esapi-basic-java-1.4.jar Basic] JAR files<br>[http://owasp-esapi-java.googlecode.com/files/owasp-esapi-java-src-1.4.zip Source files for ESAPI v1.4]<br>[http://code.google.com/p/owasp-esapi-java/ ESAPI Google Code repository]<br>[http://owasp-esapi-java.googlecode.com/svn/trunk_doc/index.html ESAPI Javadocs]<br>[http://code.google.com/p/owasp-esapi-java/source/browse/#svn/trunk/src/main/java/org/owasp/esapi Browse the Java source at Google]<br>[https://www.owasp.org/index.php/ESAPI_Javadocs Javadocs' information generation]<br>[http://code.google.com/p/owasp-esapi-java/issues/list Problems with the ESAPI may be reported here] |
+
Proj_Links= [http://owasp-esapi-java.googlecode.com/svn/trunk/documentation/OWASP%20ESAPI%20Overview.pptx ESAPI PowerPoint presentation]<br>[http://www.youtube.com/watch?v=QAPD1jPn04g ESAPI Video presentation]<br>ESAPI Demo application - [[ESAPI_Swingset|The ESAPI Swingset]]<br>JAVA 1.4 compatible JAR for ESAPI v1.4 - [http://owasp-esapi-java.googlecode.com/files/owasp-esapi-full-java-1.4.jar Complete] & [http://owasp-esapi-java.googlecode.com/files/owasp-esapi-basic-java-1.4.jar Basic] JAR files<br>[http://owasp-esapi-java.googlecode.com/files/owasp-esapi-java-src-1.4.zip Source files for ESAPI v1.4]<br>[http://code.google.com/p/owasp-esapi-java/ ESAPI Google Code repository]<br>[http://owasp-esapi-java.googlecode.com/svn/trunk_doc/index.html ESAPI Javadocs]<br>[http://code.google.com/p/owasp-esapi-java/source/browse/#svn/trunk/src/main/java/org/owasp/esapi Browse the Java source at Google]<br>[[ESAPI_Javadocs | Javadocs' information generation]]<br>[http://code.google.com/p/owasp-esapi-java/issues/list Problems with the ESAPI may be reported here] |
  
 
Proj_Related= [[Top Ten|OWASP Top Ten]]
 
Proj_Related= [[Top Ten|OWASP Top Ten]]
Line 23: Line 23:
 
   
 
   
 
'''What is ESAPI?'''
 
'''What is ESAPI?'''
+
 
 
 
[[Image:Esapi-beta.JPG|thumb|300px|right|OWASP ESAPI Book]]
 
[[Image:Esapi-beta.JPG|thumb|300px|right|OWASP ESAPI Book]]
 
Just as web applications and web services can be Public Key Infrastructure (PKI) enabled (PK-enabled) to perform for example certificate-based authentication, applications and services can be OWASP ESAPI-enabled (ES-enabled) to enable applications and services to protect themselves from attackers. OWASP ESAPI Toolkits empower web application and web service developers with the ability to increase the overall degree of trust that can be placed in their applications and services. ESAPI Toolkit security controls operate using a unique deny-by-default strategy, performing security checks using white lists.
 
Just as web applications and web services can be Public Key Infrastructure (PKI) enabled (PK-enabled) to perform for example certificate-based authentication, applications and services can be OWASP ESAPI-enabled (ES-enabled) to enable applications and services to protect themselves from attackers. OWASP ESAPI Toolkits empower web application and web service developers with the ability to increase the overall degree of trust that can be placed in their applications and services. ESAPI Toolkit security controls operate using a unique deny-by-default strategy, performing security checks using white lists.
 
 
Using an ESAPI Toolkit realizes 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. Available platforms, frameworks, and toolkits (Java EE, Struts, Spring, etc...) simply do not provide enough protection! ESAPI Toolkits are designed to automatically take care of many aspects of application security, making these issues invisible to the developers.
 
  
 +
Using an ESAPI Toolkit realizes 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. Available platforms, frameworks, and toolkits (Java EE, Struts, Spring, etc...) simply do not provide enough protection! ESAPI Toolkits are designed to automatically take care of many aspects of application security, making these issues invisible to the developers.
  
 
OWASP ESAPI Toolkits provide the same basic interfaces (including common logging interfaces) across common platforms, including Java EE, .NET, and PHP.
 
OWASP ESAPI Toolkits provide the same basic interfaces (including common logging interfaces) across common platforms, including Java EE, .NET, and PHP.
 
 
   
 
   
 
'''Additional Benefits'''
 
'''Additional Benefits'''
+
 
 
 
The use of the ESAPI will also make it much easier for static analysis tools to verify an application, by building ESAPI calls into static analysis tool rulesets.
 
The use of the ESAPI will also make it much easier for static analysis tools to verify an application, by building ESAPI calls into static analysis tool rulesets.
 
  
 
'''Where did ESAPI come from?'''
 
'''Where did ESAPI come from?'''
 
  
 
The OWASP ESAPI project is led by [[User:Jeff Williams|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 [email protected].
 
The OWASP ESAPI project is led by [[User:Jeff Williams|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 [email protected].
  
 
+
More information about the ESAPI can be found [[:Category:OWASP_Enterprise_Security_API#OWASP_ESAPI_Documentation_Downloads here]].
More information about the ESAPI can be found [http://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API#OWASP_ESAPI_Documentation_Downloads here].
 
 
 
  
 
==Architecture==
 
==Architecture==
 
<br>
 
<br>
 
[[Image:OWASPTopTen.jpg|thumb|600px|right|OWASP ESAPI Top Ten Coverage]]OWASP ESAPI Toolkits are not frameworks! The ESAPI Toolkit architecture is very simple, just a collection of classes that encapsulate the key security operations most applications need. ESAPI Toolkits provide common sets of interfaces for security controls including:
 
[[Image:OWASPTopTen.jpg|thumb|600px|right|OWASP ESAPI Top Ten Coverage]]OWASP ESAPI Toolkits are not frameworks! The ESAPI Toolkit architecture is very simple, just a collection of classes that encapsulate the key security operations most applications need. ESAPI Toolkits provide common sets of interfaces for security controls including:
 
 
   
 
   
 
* Authentication
 
* Authentication
Line 65: Line 55:
 
* HTTP Security
 
* HTTP Security
 
* Security Configuration
 
* Security Configuration
 
 
   
 
   
 
ESAPI Toolkit interfaces only include methods that are widely useful and focus on the most risky areas. Interfaces are designed to be simple to understand and use. ESAPI Toolkits are 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 ES-enabling their framework to make even more of the security happen automatically. ESAPI Toolkits include an ESAPI filter that can be used to minimize the changes required to your base application.
 
ESAPI Toolkit interfaces only include methods that are widely useful and focus on the most risky areas. Interfaces are designed to be simple to understand and use. ESAPI Toolkits are 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 ES-enabling their framework to make even more of the security happen automatically. ESAPI Toolkits include an ESAPI filter that can be used to minimize the changes required to your base application.
 
   
 
   
+
ESAPI Toolkits are designed and implemented to guard against the risks described in the OWASP [[Top Ten]], and to meet the requirements of the [[ASVS | OWASP Application Security Verification Standard (ASVS)]]. Compare this coverage with automated scanning and static analysis tools, and then consider how your time is best spent!
ESAPI Toolkits are designed and implemented to guard against the risks described in the OWASP [[Top Ten]], and to meet the requirements of the [http://www.owasp.org/index.php/ASVS OWASP Application Security Verification Standard (ASVS)]. Compare this coverage with automated scanning and static analysis tools, and then consider how your time is best spent!
 
 
 
   
 
   
 
==OWASP ESAPI Java EE Beta Code Downloads==
 
==OWASP ESAPI Java EE Beta Code Downloads==
Line 105: Line 92:
 
* For more information about the ESAPI, please view the [http://owasp-esapi-java.googlecode.com/svn/trunk/documentation/OWASP%20ESAPI%20Overview.pptx ESAPI PowerPoint presentation].
 
* For more information about the ESAPI, please view the [http://owasp-esapi-java.googlecode.com/svn/trunk/documentation/OWASP%20ESAPI%20Overview.pptx ESAPI PowerPoint presentation].
  
* If you are generating your own Javadocs for the ESAPI project, information regarding generation can be found [https://www.owasp.org/index.php/ESAPI_Javadocs here].
+
* If you are generating your own Javadocs for the ESAPI project, information regarding generation can be found [[ESAPI_Javadocs | here]].
 
<br>
 
<br>
  
Line 119: Line 106:
 
* Video presentation ([http://www.youtube.com/watch?v=QAPD1jPn04g YouTube])
 
* Video presentation ([http://www.youtube.com/watch?v=QAPD1jPn04g YouTube])
 
* One Page Conference Handout ([http://www.owasp.org/images/3/31/ESAPI_One_Page_Handout.pdf PDF], [http://www.owasp.org/images/d/d0/ESAPI_One_Page_Handout.doc Word])  
 
* One Page Conference Handout ([http://www.owasp.org/images/3/31/ESAPI_One_Page_Handout.pdf PDF], [http://www.owasp.org/images/d/d0/ESAPI_One_Page_Handout.doc Word])  
 
  
 
 
 
 
 
 
  
 
==Changing/Building/Using the ESAPI==
 
==Changing/Building/Using the ESAPI==
Line 135: Line 115:
 
* Download the latest version of the ESAPI JAR from above.
 
* Download the latest version of the ESAPI JAR from above.
 
* Add the ESAPI JAR to your project's build path.
 
* 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 [https://www.owasp.org/index.php/ESAPI-Building here] for information on building ESAPI for a different version of Java.   
+
* The current ESAPI JAR has been built for Java 1.6, however support for Java 1.4.2+ is available.  Please see [[ESAPI-Building here]] for information on building ESAPI for a different version of Java.   
 
* Use the [http://owasp-esapi-java.googlecode.com/svn/trunk_doc/index.html ESAPI's Javadocs ] to take advantage of all the built-in functions of the ESAPI.
 
* Use the [http://owasp-esapi-java.googlecode.com/svn/trunk_doc/index.html ESAPI's Javadocs ] to take advantage of all the built-in functions of the ESAPI.
  
Line 144: Line 124:
  
 
The OWASP ESAPI project is sponsored by  
 
The OWASP ESAPI project is sponsored by  
[http://www.aspectsecurity.com https://www.owasp.org/images/d/d1/Aspect_logo.gif]
+
[http://www.aspectsecurity.com http://www.owasp.org/images/d/d1/Aspect_logo.gif]
  
 
==Licensing==
 
==Licensing==

Revision as of 21:57, 6 March 2009

About

{{{Proj_About}}}

FAQ

{{{Proj_Documentation}}}

News

{{{Proj_Mail}}}

Contributors/Users

Project Leader
Jeff Williams

Project Contributors
Jim Manico
Dave Wichers
Arshan Dabirsiaghi
Jerry Hoff


What is ESAPI?

OWASP ESAPI Book

Just as web applications and web services can be Public Key Infrastructure (PKI) enabled (PK-enabled) to perform for example certificate-based authentication, applications and services can be OWASP ESAPI-enabled (ES-enabled) to enable applications and services to protect themselves from attackers. OWASP ESAPI Toolkits empower web application and web service developers with the ability to increase the overall degree of trust that can be placed in their applications and services. ESAPI Toolkit security controls operate using a unique deny-by-default strategy, performing security checks using white lists.

Using an ESAPI Toolkit realizes 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. Available platforms, frameworks, and toolkits (Java EE, Struts, Spring, etc...) simply do not provide enough protection! ESAPI Toolkits are designed to automatically take care of many aspects of application security, making these issues invisible to the developers.

OWASP ESAPI Toolkits provide the same basic interfaces (including common logging interfaces) across common platforms, including Java EE, .NET, and PHP.

Additional Benefits

The use of the ESAPI will also make it much easier for static analysis tools to verify an application, by building ESAPI calls into static analysis tool rulesets.

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 [email protected].

More information about the ESAPI can be found Category:OWASP_Enterprise_Security_API#OWASP_ESAPI_Documentation_Downloads here.

Architecture


OWASP ESAPI Top Ten Coverage
OWASP ESAPI Toolkits are not frameworks! The ESAPI Toolkit architecture is very simple, just a collection of classes that encapsulate the key security operations most applications need. ESAPI Toolkits provide common sets of interfaces for security controls including:
  • Authentication
  • Access Control
  • Input Validation
  • Output Encoding/Escaping
  • Cryptography
  • Error Handling and Logging
  • Data Protection
  • Communication Security
  • HTTP Security
  • Security Configuration

ESAPI Toolkit interfaces only include methods that are widely useful and focus on the most risky areas. Interfaces are designed to be simple to understand and use. ESAPI Toolkits are 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 ES-enabling their framework to make even more of the security happen automatically. ESAPI Toolkits include an ESAPI filter that can be used to minimize the changes required to your base application.

ESAPI Toolkits are designed and implemented to guard against the risks described in the OWASP Top Ten, and to meet the requirements of the OWASP Application Security Verification Standard (ASVS). Compare this coverage with automated scanning and static analysis tools, and then consider how your time is best spent!

OWASP ESAPI Java EE Beta Code Downloads


ESAPI

Download free:

OWASP ESAPI

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 [email protected] 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

Additional Resources

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


OWASP ESAPI Documentation Downloads


Project Presentation

Download free:

About OWASP ESAPI


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 ESAPI-Building 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.

Articles - More About ESAPI and Using ESAPI