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

From OWASP
Jump to: navigation, search
(Removed PHP Onboarding Instructions - No longer maintained)
(24 intermediate revisions by 10 users not shown)
Line 1: Line 1:
==== Home  ====
+
= Home  =
  
 
{| width="100%"
 
{| width="100%"
Line 17: Line 17:
 
*'''There are optionally your own implementations for each security control.''' There may be application logic contained in these classes which may be developed by or for your organization. An example: enterprise authentication.
 
*'''There are optionally your own implementations for each security control.''' There may be application logic contained in these classes which may be developed by or for your organization. An example: enterprise authentication.
  
This project is licensed under the [http://en.wikipedia.org/wiki/BSD_license 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.
+
This project source code is licensed under the [http://en.wikipedia.org/wiki/BSD_license BSD license], which is very permissive and about as close to public domain as is possible. The project documentation is licensed under the [http://creativecommons.org/licenses/by-sa/2.0/ Creative Commons] license. You can use or modify ESAPI however you want, even include it in commercial products.
  
The following organizations are a few of the many organizations that are starting to adopt ESAPI to secure their web applications: [http://www.americanexpress.com/ American Express], [http://www.apache.org/ Apache Foundation], [http://www.boozallen.com Booz Allen Hamilton], [http://www.aspectsecurity.com/ Aspect Security], [http://www.foundstone.com Foundstone(McAfee)], [http://www.thehartford.com/ The Hartford], [http://www.infinitecampus.com Infinite Campus], [http://www.lockheedmartin.com/ Lockheed Martin], [http://cwe.mitre.org/top25/index.html MITRE], [http://www.nationwide.com/ Nationwide Insurance], [http://enterprise.spawar.navy.mil/ U.S. Navy - SPAWAR], [http://www.worldbank.org/ The World Bank], [http://www.sans.org/top25errors/ SANS Institute].  
+
The following organizations are a few of the many organizations that are starting to adopt ESAPI to secure their web applications: [http://www.americanexpress.com/ American Express], [http://www.apache.org/ Apache Foundation], [http://www.boozallen.com Booz Allen Hamilton], [http://www.aspectsecurity.com/ Aspect Security], [http://www.coraid.com Coraid], [http://www.thehartford.com/ The Hartford], [http://www.infinitecampus.com Infinite Campus], [http://www.lockheedmartin.com/ Lockheed Martin], [http://cwe.mitre.org/top25/index.html MITRE], [http://enterprise.spawar.navy.mil/ U.S. Navy - SPAWAR], [http://www.worldbank.org/ The World Bank], [http://www.sans.org/top25errors/ SANS Institute].  
  
Please let us know how your organization is using OWASP ESAPI. Include your name, organization's name, and brief description of how you are using it. The project lead can be reached [mailto:jeff.williams@owasp.org here]. The project maintainer can be reached [mailto:jim.manico@owasp.org here].
+
Please let us know how your organization is using OWASP ESAPI. Include your name, organization's name, and brief description of how you are using it. The project lead can be reached [mailto:jeff.williams@owasp.org here].  
  
 
|  
 
|  
Line 47: Line 47:
 
*[https://lists.owasp.org/mailman/listinfo/owasp-esapi-ruby esapi-ruby mailing list]  
 
*[https://lists.owasp.org/mailman/listinfo/owasp-esapi-ruby esapi-ruby mailing list]  
 
*[https://lists.owasp.org/mailman/listinfo/owasp-esapi-swingset esapi-swingset mailing list]
 
*[https://lists.owasp.org/mailman/listinfo/owasp-esapi-swingset esapi-swingset mailing list]
 +
*[http://groups.google.com/group/cfesapi esapi-coldfusion mailing list]
 +
 +
IRC Chat
 +
 +
If you would rather chat with us about your problem or thoughts - you can join us in our IRC channel using an [http://www.google.com/search?q=irc+client IRC Client] or using FreeNode's [http://webchat.freenode.net WebChat] client.
 +
 +
*Server: irc.freenode.net
 +
*Channel: #esapi
 +
 +
|
  
|
 
 
== Got developer cycles?  ==
 
== Got developer cycles?  ==
  
Line 54: Line 63:
  
 
The ESAPI project is always on the lookout for volunteers who are interested in contributing developer cycles.  
 
The ESAPI project is always on the lookout for volunteers who are interested in contributing developer cycles.  
 
+
*[http://owasp-esapi-php.googlecode.com/files/esapi4php-contributing.pdf ESAPI for PHP Developer Onboarding Instructions]
+
 
*ESAPI for other languages developer onboarding instructions -- coming soon!
 
*ESAPI for other languages developer onboarding instructions -- coming soon!
  
Line 61: Line 69:
 
== Related resources  ==
 
== Related resources  ==
  
[[Image:Asvs-satellite.jpg]]'''OWASP Cheat Sheet Series'''
+
[[Image:Asvs-satellite.jpg]]{{Cheatsheet_Navigation}}
 
+
*[[SQL Injection Prevention Cheat Sheet]]
+
*[[XSS (Cross Site Scripting) Prevention Cheat Sheet]]
+
*[[Cryptographic Storage Cheat Sheet]]
+
*[[Authentication Cheat Sheet]]
+
*[[Cross-Site Request Forgery (CSRF) Prevention Cheat Sheet]]
+
*[[Transport Layer Protection Cheat Sheet]]
+
 
+
 
|}
 
|}
  
==== Downloads  ====
+
= Downloads  =
  
 
{| width="100%"
 
{| width="100%"
Line 88: Line 88:
 
[[Image:Asvs-step2.jpg]]'''2. Get ESAPI'''  
 
[[Image:Asvs-step2.jpg]]'''2. Get ESAPI'''  
  
*[http://owasp-esapi-java.googlecode.com/files/ESAPI-1.4.4.zip ESAPI for Java 1.4.4 complete zip (JDK 1.4+)]
+
*[http://code.google.com/p/owasp-esapi-java/downloads/list ESAPI for Java Downloads]  
*[http://owasp-esapi-java.googlecode.com/files/esapi-2.0_rc10.zip ESAPI for Java 2.0 rc10 complete zip (JDK 1.5+)]  
+
 
*{{#switchtablink:.NET|ESAPI for .NET}}<br>  
 
*{{#switchtablink:.NET|ESAPI for .NET}}<br>  
 
*{{#switchtablink:Classic ASP|ESAPI for Classic ASP}}<br>  
 
*{{#switchtablink:Classic ASP|ESAPI for Classic ASP}}<br>  
Line 108: Line 107:
 
|}
 
|}
  
<br>
 
  
==== Here's what I did with ESAPI  ====
+
= What I did with ESAPI  =
  
 
*I used ESAPI for Java with Google AppEngine. I used it for simple validation and encoding. --[mailto:jeff.williams@owasp.org Jeff]
 
*I used ESAPI for Java with Google AppEngine. I used it for simple validation and encoding. --[mailto:jeff.williams@owasp.org Jeff]
Line 121: Line 119:
  
 
*I used ESAPI for Java's "Authenticator" to replace a spaghetti-like mechanism in a legacy financial services web application. In hindsight I should have used the application-specific "Adapter" pattern mentioned by Mike above. The organization also uses the ESAPI Encryptor as an interface to a hardware security module. --[mailto:roman.hustad@yahoo.com Roman]
 
*I used ESAPI for Java's "Authenticator" to replace a spaghetti-like mechanism in a legacy financial services web application. In hindsight I should have used the application-specific "Adapter" pattern mentioned by Mike above. The organization also uses the ESAPI Encryptor as an interface to a hardware security module. --[mailto:roman.hustad@yahoo.com Roman]
 +
 +
*I use ESAPI to be our security package for all our product, this way we can set one standard for all products. --[mailto:yairr@liveperson.com Yair]
  
 
*I use ESAPI for Java to educate developers about application security principals at several of the world’s largest organizations. --[mailto:jim.manico@owasp.org Jim]<br>  
 
*I use ESAPI for Java to educate developers about application security principals at several of the world’s largest organizations. --[mailto:jim.manico@owasp.org Jim]<br>  
  
==== Glossary  ====
+
= Glossary  =
  
 
[[Image:Asvs-letters.jpg]]'''ESAPI Terminology'''  
 
[[Image:Asvs-letters.jpg]]'''ESAPI Terminology'''  
Line 144: Line 144:
 
<br>  
 
<br>  
  
==== Java EE  ====
+
= Java EE  =
  
 
{{:GPC_Project_Details/OWASP_Enterprise_Security_API_Java_EE_Version | OWASP Project Identification Tab}}  
 
{{:GPC_Project_Details/OWASP_Enterprise_Security_API_Java_EE_Version | OWASP Project Identification Tab}}  
  
==== .NET  ====
+
= Dot NET  =
  
 
{{:GPC_Project_Details/OWASP_Enterprise_Security_API_.NET_Version | OWASP Project Identification Tab}}  
 
{{:GPC_Project_Details/OWASP_Enterprise_Security_API_.NET_Version | OWASP Project Identification Tab}}  
  
==== Classic ASP  ====
+
= Classic ASP  =
  
 
{{:GPC_Project_Details/OWASP_Enterprise_Security_API_-_Classic_ASP_Version | OWASP Project Identification Tab}}  
 
{{:GPC_Project_Details/OWASP_Enterprise_Security_API_-_Classic_ASP_Version | OWASP Project Identification Tab}}  
  
==== PHP  ====
+
= PHP  =
  
 
{{:GPC_Project_Details/OWASP_Enterprise_Security_API_-_PHP_Version | OWASP Project Identification Tab}}  
 
{{:GPC_Project_Details/OWASP_Enterprise_Security_API_-_PHP_Version | OWASP Project Identification Tab}}  
  
==== ColdFusion/CFML ====
+
= ColdFusion CFML =
  
{{:GPC_Project_Details/OWASP_Enterprise_Security_API_-_ColdFusion/CFML | OWASP Project Identification Tab}}  
+
<!---{{:GPC_Project_Details/OWASP_Enterprise_Security_API_-_ColdFusion/CFML | OWASP Project Identification Tab}}--->
 +
{{:Projects/OWASP ESAPI for ColdFusion - CFML Project | Project About}}
  
==== Python ====
+
= Python =
  
 
{{:GPC_Project_Details/OWASP_Enterprise_Security_API_-_Python_Version | OWASP Project Identification Tab}}  
 
{{:GPC_Project_Details/OWASP_Enterprise_Security_API_-_Python_Version | OWASP Project Identification Tab}}  
  
==== JavaScript ====
+
= JavaScript =
  
 
{{:GPC_Project_Details/OWASP_Enterprise_Security_API_JavaScript_Version  | OWASP Project Identification Tab}}  
 
{{:GPC_Project_Details/OWASP_Enterprise_Security_API_JavaScript_Version  | OWASP Project Identification Tab}}  
  
==== Objective C ====
+
= Objective C =
  
 
{{:Projects/OWASP ESAPI Objective - C Project | Project About}}
 
{{:Projects/OWASP ESAPI Objective - C Project | Project About}}
  
==== Force.com ====
+
= Force com =
  
 
{{:GPC_Project_Details/OWASP_Enterprise_Security_API_-_Force.com_Version | OWASP Project Identification Tab}}  
 
{{:GPC_Project_Details/OWASP_Enterprise_Security_API_-_Force.com_Version | OWASP Project Identification Tab}}  
  
==== Ruby ====
+
= Ruby =
  
 
{{:Projects/Owasp Esapi Ruby | Project About}}  
 
{{:Projects/Owasp Esapi Ruby | Project About}}  
  
==== Swingset ====
+
= Swingset =
  
{{:Projects/ESAPI Swingset | Project About}}
+
The ESAPI Swingset Project divides itself into sub-projects, i.e., [[Projects/OWASP ESAPI Swingset Interactive Project|Swingset Interactive]] and [[Projects/OWASP ESAPI Swingset Demo Project|Swingset Demo]].
  
==== Project Details  ====
+
= ESAPI C =
 +
 
 +
{{:Projects/OWASP ESAPI C Project | Project About}}
 +
 
 +
= ESAPI CPP =
 +
 
 +
{{:Projects/OWASP ESAPI C++ Project | Project About}}
 +
 
 +
= ESAPI Perl =
 +
 
 +
{{:Projects/OWASP ESAPI Perl Project | Project About}}
 +
 
 +
= Project Details  =
  
 
{{:GPC_Project_Details/OWASP_Enterprise_Security_API | OWASP Project Identification Tab}}  
 
{{:GPC_Project_Details/OWASP_Enterprise_Security_API | OWASP Project Identification Tab}}  
  
 
__NOTOC__ <headertabs /> <br>
 
__NOTOC__ <headertabs /> <br>
 +
 +
{{OWASP Builders}}

Revision as of 10:00, 29 August 2012

[edit]

ESAPI (The OWASP Enterprise Security API) is a free, open source, web application security control library that makes it easier for programmers to write lower-risk applications. The ESAPI libraries are designed to make it easier for programmers to retrofit security into existing applications. The ESAPI libraries also serve as a solid foundation for new development.

Allowing for language-specific differences, all OWASP ESAPI versions have the same basic design:

  • There is a set of security control interfaces. They define for example types of parameters that are passed to types of security controls.
  • There is a reference implementation for each security control. The logic is not organization‐specific and the logic is not application‐specific. An example: string‐based input validation.
  • There are optionally your own implementations for each security control. There may be application logic contained in these classes which may be developed by or for your organization. An example: enterprise authentication.

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

The following organizations are a few of the many organizations that are starting to adopt ESAPI to secure their web applications: American Express, Apache Foundation, Booz Allen Hamilton, Aspect Security, Coraid, The Hartford, Infinite Campus, Lockheed Martin, MITRE, U.S. Navy - SPAWAR, The World Bank, SANS Institute.

Please let us know how your organization is using OWASP ESAPI. Include your name, organization's name, and brief description of how you are using it. The project lead can be reached here.

Esapi-sponsors.PNG

Let's talk here

Asvs-bulb.jpgESAPI Communities

Further development of ESAPI occurs through mailing list discussions and occasional workshops, and suggestions for improvement are welcome. For more information, please subscribe to one of the lists below.

IRC Chat

If you would rather chat with us about your problem or thoughts - you can join us in our IRC channel using an IRC Client or using FreeNode's WebChat client.

  • Server: irc.freenode.net
  • Channel: #esapi

Got developer cycles?

Asvs-waiting.JPGESAPI Coding

The ESAPI project is always on the lookout for volunteers who are interested in contributing developer cycles.

  • ESAPI for other languages developer onboarding instructions -- coming soon!

Related resources

Asvs-satellite.jpgOWASP Cheat Sheets Project Homepage

Developer Cheat Sheets (Builder)

Assessment Cheat Sheets (Breaker)

Mobile Cheat Sheets

OpSec Cheat Sheets (Defender)

Draft Cheat Sheets

Asvs-step1.jpg1. About ESAPI

Asvs-step2.jpg2. Get ESAPI

Asvs-step3.jpg3. Learn ESAPI

  • ESAPI design patterns (not language-specific): (PDF, Word, PPT)
  • The ESAPI Swingset sample application demonstrates how to leverage ESAPI to protect a web application.
  • LAMP should be spelled LAMPE (PDF)
  • ESAPI for Java interface documentation (JavaDocs)
  • ESAPI for PHP interface documentation (phpdoc)


  • I used ESAPI for Java with Google AppEngine. I used it for simple validation and encoding. --Jeff
  • I used ESAPI for PHP with a custom web 2.0 corporate knowledge management application, made up of many open source and commercial applications integrated to work together. I added an organization- and application-specific "Adapter" control to wrap calls to the other ESAPI controls. --Mike
  • I used ESAPI for Java’s "Logger" control to make it easier for a US Government customer to meet C&A requirements. --Dave
  • I used ESAPI for Java to build a low risk web application that was over 250,000+ lines of code in size. --Jim
  • I used ESAPI for Java's "Authenticator" to replace a spaghetti-like mechanism in a legacy financial services web application. In hindsight I should have used the application-specific "Adapter" pattern mentioned by Mike above. The organization also uses the ESAPI Encryptor as an interface to a hardware security module. --Roman
  • I use ESAPI to be our security package for all our product, this way we can set one standard for all products. --Yair
  • I use ESAPI for Java to educate developers about application security principals at several of the world’s largest organizations. --Jim

Asvs-letters.jpgESAPI Terminology

  • adapter - There are optionally your own implementations for each security control. There may be application logic contained in these classes which may be developed by or for your organization. The logic may be organization-specific and/or application-specific. There may be proprietary information or logic contained in these classes which may be developed by or for your organization.
  • built-in singleton design pattern - The "built-in" singleton design pattern refers to the replacement of security control reference implementations with your own implementations. ESAPI interfaces are otherwise left intact.
  • codec - ESAPI encoder/decoder reference implementations.
  • core - The ESAPI interfaces and reference implementations that are not intended to be replaced with enterprise-specific versions are called the ESAPI Core.
  • exception - ESAPI exception reference implementations.
  • extended factory design pattern - The "extended" factory design pattern refers to the addition of a new security control interface and corresponding implementation, which in turn calls ESAPI security control reference implementations and/or security control reference implementations that were replaced with your own implementations. The ESAPI locator class would be called in order to retrieve a singleton instance of your new security control, which in turn would call ESAPI security control reference implementations and/or security control reference implementations that were replaced with your own implementations.
  • extended singleton design pattern - The "extended" singleton pattern refers to the replacement of security control reference implementations with your own implementations and the addition/modification/subtraction of corresponding security control interfaces.
  • ES-enable (or ESAPI-enable) - 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.
  • filter - In ESAPI for Java, there is additionally an HTTP filter that can be called separately from the other controls.
  • interfaces - There is a set of security control interfaces. There is no application logic contained in these interfaces. They define for example types of parameters that are passed to types of security controls. There is no proprietary information or logic contained in these interfaces.
  • locator - The ESAPI security control interfaces include an "ESAPI" class that is commonly referred to as a "locator" class. The ESAPI locator class is called in order to retrieve singleton instances of individual security controls, which are then called in order to perform security checks (such as performing an access control check) or that result in security effects (such as generating an audit record).
  • reference implementation - There is a reference implementation for each security control. There is application logic contained in these classes, i.e. contained in these interface implementations. However, the logic is not organization-specific and the logic is not application-specific. There is no proprietary information or logic contained in these reference implementation classes.
  • Web Application Firewall (WAF) - In ESAPI for Java, there is additionally a Web Application Firewall (WAF) that can be called separately from the other controls.


PROJECT INFO
What does this OWASP project offer you?
what is this project?
OWASP ESAPI for Java EE

Purpose: This is the Java EE language version of OWASP ESAPI. The ESAPI for Java EE is the baseline ESAPI design.

License: BSD license

who is working on this project?
Project Leader: Jeff Williams @

Project Maintainer:

Project Contributor(s):

how can you learn more?
Project Pamphlet: N/A

3x slide Project Presentation: N/A

Mailing list: Subscribe or read the archives

Project Roadmap: N/A

Main links:

Project Health: Yellow button.JPG Not Reviewed (Provisional)
To be reviewed under Assessment Criteria v2.0

Key Contacts
  • Contact Jeff Williams @ to contribute, review or sponsor this project
  • Contact the GPC to report a problem or concern about this project or to update information.

PROJECT INFO
What does this OWASP project offer you?
what is this project?
OWASP ESAPI for .NET

Purpose: This is the .NET language version of OWASP ESAPI.

License: BSD license

who is working on this project?
Project Leader: None

Project Maintainer: Michael Weber @

Project Contributor(s):

  • Paul Apostolescu @
how can you learn more?
Project Pamphlet: N/A

3x slide Project Presentation: N/A

Mailing list: Subscribe or read the archives

Project Roadmap: N/A

Main links:

Project Health: Yellow button.JPG Not Reviewed (Provisional)
To be reviewed under Assessment Criteria v2.0

Key Contacts
  • Contact None to contribute, review or sponsor this project
  • Contact the GPC to report a problem or concern about this project or to update information.

PROJECT INFO
What does this OWASP project offer you?
what is this project?
OWASP ESAPI for Classic ASP

Purpose: This is the Microsoft Classic ASP 3.x language version of OWASP ESAPI.

  • The current release of this project is not suitable for production use

License: BSD license

who is working on this project?
Project Leader: Juan Carlos Calderon @

Project Maintainer: Juan Carlos Calderon @

Project Contributor(s): N/A

how can you learn more?
Project Pamphlet: N/A

3x slide Project Presentation: N/A

Mailing list: Subscribe or read the archives

Project Roadmap: [[:ESAPI for Classic ASP is currently "mounted" on ESAPI for .NET using interop, however the prevalence of random errors in the technology had make it non usable in real world. Starting on December 2010, the API will be re-written completely to ActiveX objects to avoid any issue related to interop and to other dependencies (.NET Framework) | To view, click here]]

Main links:

Project Health: Yellow button.JPG Not Reviewed (Provisional)
To be reviewed under Assessment Criteria v2.0

Key Contacts
  • Contact Juan Carlos Calderon @ to contribute, review or sponsor this project
  • Contact the GPC to report a problem or concern about this project or to update information.

PROJECT INFO
What does this OWASP project offer you?
what is this project?
OWASP ESAPI for PHP

Purpose: This is the PHP language version of OWASP ESAPI.

  • The current release of this project is not suitable for production use

License: BSD license

who is working on this project?
Project Leader: Andrew van der Stock @

Project Maintainer:

Project Contributor(s):

how can you learn more?
Project Pamphlet: N/A

3x slide Project Presentation: N/A

Mailing list: Subscribe or read the archives

Project Roadmap: N/A

Main links:

Project Health: Yellow button.JPG Not Reviewed (Provisional)
To be reviewed under Assessment Criteria v2.0

Key Contacts
  • Contact Andrew van der Stock @ to contribute, review or sponsor this project
  • Contact the GPC to report a problem or concern about this project or to update information.

PROJECT INFO
What does this OWASP project offer you?
RELEASE(S) INFO
What releases are available for this project?
what is this project?
Name: OWASP ESAPI for ColdFusion/CFML Project (home page)
Purpose: This is the ColdFusion/CFML language version of OWASP ESAPI.
  • The current release of this project is not suitable for production use
License: BSD License
who is working on this project?
Project Leader(s):
  • Damon Miller @
Project Contributor(s):
  • Bill Shelton @
  • Jason Dean @
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 Damon Miller @ to contribute to this project
  • Contact Damon Miller @ to review or sponsor this project
  • 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

PROJECT INFO
What does this OWASP project offer you?
what is this project?
OWASP ESAPI for Python

Purpose: This is the Python language version of OWASP ESAPI.

  • The current release of this project is not suitable for production use

License: BSD license

who is working on this project?
Project Leader: Craig Younkins @

Project Maintainer:

Project Contributor(s): N/A

how can you learn more?
Project Pamphlet: N/A

3x slide Project Presentation: N/A

Mailing list: N/A

Project Roadmap: N/A

Main links:

Project Health: Yellow button.JPG Not Reviewed (Provisional)
To be reviewed under Assessment Criteria v2.0

Key Contacts
  • Contact Craig Younkins @ to contribute, review or sponsor this project
  • Contact the GPC to report a problem or concern about this project or to update information.

PROJECT INFO
What does this OWASP project offer you?
what is this project?
OWASP ESAPI for JavaScript

Purpose: This is the JavaScript language version of OWASP ESAPI.

  • The current release of this project is not suitable for production use

License: BSD license

who is working on this project?
Project Leader: Chris Schmidt

Project Maintainer:

Project Contributor(s): N/A

how can you learn more?
Project Pamphlet: N/A

3x slide Project Presentation: N/A

Mailing list: N/A

Project Roadmap: N/A

Main links:

Project Health: Yellow button.JPG Not Reviewed (Provisional)
To be reviewed under Assessment Criteria v2.0

Key Contacts
  • Contact Chris Schmidt to contribute, review or sponsor this project
  • Contact the GPC to report a problem or concern about this project or to update information.

PROJECT INFO
What does this OWASP project offer you?
RELEASE(S) INFO
What releases are available for this project?
what is this project?
Name: OWASP ESAPI Objective - C Project (home page)
Purpose: The OWASP ESAPI Objective-C is the Objective-C (Cocoa) implementation of ESAPI.
  • The current release of this project is not suitable for production use
License: BSD License
who is working on this project?
Project Leader(s):
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 the GPC to report a problem or concern about this project or to update information.
current release
ESAPI Objective - C/Release v0.0.1 - Jul 8, 2011 - (download)
Release description: The ESAPI for Objective - C library is designed to make it easier for programmers to retrofit security into existing applications. ESAPI for Objective - C also serves as a solid foundation for new development.
Rating: Yellow button.JPG Not Reviewed - Assessment Details
last reviewed release
Not Yet Reviewed


other releases

PROJECT INFO
What does this OWASP project offer you?
what is this project?
OWASP ESAPI for Force.com

Purpose: This is the Force.com language version of OWASP ESAPI.

  • The current release of this project is suitable for production use

License: New BSD license

who is working on this project?
Project Leader: Yoel Gluck (securecloud .at. salesforce.com)

Project Maintainer: Jonathan Rico

Project Contributor(s): N/A

how can you learn more?
Project Pamphlet: N/A

3x slide Project Presentation: N/A

Mailing list: N/A

Project Roadmap: N/A

Main links:

Project Health: Yellow button.JPG Not Reviewed (Provisional)
To be reviewed under Assessment Criteria v2.0

Key Contacts

PROJECT INFO
What does this OWASP project offer you?
RELEASE(S) INFO
What releases are available for this project?
what is this project?
Name: Owasp Esapi Ruby (home page)
Purpose: The Owasp Esapi Ruby is a port for outstanding release quality Owasp Esapi project to the Ruby programming language. The idea is to build a Ruby gem (the standard ruby library archive format) containing the Esapi concepts implemented in Ruby classes so people using Ruby in their Rails application can have security into them.
License: BSD license
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
Main links:
Key Contacts
  • Contact the GPC to report a problem or concern about this project or to update information.
current release
Owasp Esapi Ruby v0.30.0 - March 2011 - (download)
Release description:
  • The OWASP Esapi Ruby gem will require at least version 1.9.2 of Ruby interpreter to make sure to have full advantages of the newer language APIs. In particular version 1.9.2 introduces radical changes in the following areas:
    • Regular expression engine (to be written)
    • UTF-8 support
    • Unicode support in 1.9.2 is much better and provides better support for character set encoding/decoding
      • All strings have an additional chunk of info attached: Encoding
      • String#size takes encoding into account – returns the encoded character count
      • You can get the raw datasize
      • Indexed access is by encoded data – characters, not bytes
      • You can change encoding by force but it doesn’t convert the data
    • Dates and Time
      • From “Programming Ruby 1.9“
      • “As of Ruby 1.9.2, the range of dates that can be represented is no longer limited by the under- lying operating system’s time representation (so there’s no year 2038 problem). As a result, the year passed to the methods gm, local, new, mktime, and utc must now include the century—a year of 90 now represents 90 and not 1990.“
Rating: Yellow button.JPG Not Reviewed - Assessment Details
last reviewed release
Not Yet Reviewed


other releases

The ESAPI Swingset Project divides itself into sub-projects, i.e., Swingset Interactive and Swingset Demo.

PROJECT INFO
What does this OWASP project offer you?
RELEASE(S) INFO
What releases are available for this project?
what is this project?
Name: OWASP ESAPI C Project (home page)
Purpose: This is the C language version of the OWASP ESAPI.
  • ESAPI for C is sponsored by the United States Government
  • An API for helping programmers develop more secure business applications in C.
  • Provides easy to use functions for proper auditing, simple wrappers for cryptographic functions, and more.
License: N/A
who is working on this project?
Project Leader(s):
Project Contributor(s):
  • David Anderson @
how can you learn more?
Project Pamphlet: Not Yet Created
Project Presentation:
Mailing list: Mailing List Archives
Project Roadmap: Not Yet Created
Main links:
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


PROJECT INFO
What does this OWASP project offer you?
RELEASE(S) INFO
What releases are available for this project?
what is this project?
Name: OWASP ESAPI C++ Project (home page)
Purpose: This is the C++ language version of the OWASP ESAPI.
  • ESAPI for C++ is sponsored by the United States Government
  • An API for helping programmers develop more secure business applications in C++.
  • Provides easy to use functions for proper auditing, simple wrappers for cryptographic functions, and more.
  • The current release of this project is not suitable for production use
License: N/A
who is working on this project?
Project Leader(s):
  • David Anderson @
Project Contributor(s):
how can you learn more?
Project Pamphlet: Not Yet Created
Project Presentation:
Mailing list: Mailing List Archives
Project Roadmap: Not Yet Created
Main links:
Key Contacts
  • Contact David Anderson @ to contribute to this project
  • Contact David Anderson @ to review or sponsor this project
  • 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


PROJECT INFO
What does this OWASP project offer you?
RELEASE(S) INFO
What releases are available for this project?
what is this project?
Name: OWASP ESAPI Perl Project (home page)
Purpose: Provides a Perl implementation of the OWASP Enterprise Security API. Once the major components have been written, this will be released on CPAN.
License: Artistic 2.0 (Same as Perl 5)
who is working on this project?
Project Leader(s):
how can you learn more?
Project Pamphlet: Not Yet Created
Project Presentation:
Mailing list: Mailing List Archives
Project Roadmap: Not Yet Created
Main links:
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

PROJECT INFO
What does this OWASP project offer you?
what is this project?
OWASP Enterprise Security API

Purpose: ESAPI (The OWASP Enterprise Security API) is a free, open source, web application security control library that makes it easier for programmers to write lower-risk applications. The ESAPI libraries are designed to make it easier for programmers to retrofit security into existing applications. The ESAPI libraries also serve as a solid foundation for new development. Allowing for language-specific differences, all OWASP ESAPI versions have the same basic design:

  • There is a set of security control interfaces. They define for example types of parameters that are passed to types of security controls.
  • There is a reference implementation for each security control. The logic is not organization‐specific and the logic is not application‐specific. An example: string‐based input validation.
  • There are optionally your own implementations for each security control. There may be application logic contained in these classes which may be developed by or for your organization. An example: enterprise authentication.

License: BSD license

who is working on this project?
Project Leader: Chris Schmidt @

Project Maintainer:

Project Contributor(s):

  • Kevin Wall
  • Jeff Williams
  • Dave Wichers
  • John Steven
how can you learn more?
Project Pamphlet: View

3x slide Project Presentation: View

Mailing list: Subscribe or read the archives

Project Roadmap: N/A

Main links:

Project Health: Yellow button.JPG Not Reviewed (Provisional)
To be reviewed under Assessment Criteria v2.0

Key Contacts
  • Contact Chris Schmidt @ to contribute, review or sponsor this project
  • Contact the GPC to report a problem or concern about this project or to update information.


This project is part of the OWASP Builders community.
Feel free to browse other projects within the Defenders, Builders, and Breakers communities.