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"
Pawan.Singh (talk | contribs) m (minor clean-up on links display) |
(ESAPI Python v1.0 release) |
||
Line 219: | Line 219: | ||
<br>'''New features''' | <br>'''New features''' | ||
− | This release improve | + | This release improve significantly on the first release. The following components have been redesigned and reimplemented: |
* AccessController | * AccessController | ||
Line 368: | Line 368: | ||
====Python==== | ====Python==== | ||
− | '''Python Edition of the OWASP ESAPI Toolkit - | + | '''Python Edition of the OWASP ESAPI Toolkit - Now available!''' |
* The Python version of ESAPI is being lead by [[User:Craig Younkins|Craig Younkins]]. Feel free to contact [mailto:[email protected] him] for further details. | * The Python version of ESAPI is being lead by [[User:Craig Younkins|Craig Younkins]]. Feel free to contact [mailto:[email protected] him] for further details. | ||
* We are currently looking for contributors. If you are interested in working on ESAPI on Python, please join our [http://lists.owasp.org/mailman/listinfo/esapi-python mailing list] or send me an [mailto:[email protected] email]. | * We are currently looking for contributors. If you are interested in working on ESAPI on Python, please join our [http://lists.owasp.org/mailman/listinfo/esapi-python mailing list] or send me an [mailto:[email protected] email]. | ||
Line 378: | Line 378: | ||
'''OWASP ESAPI - Python Edition''' | '''OWASP ESAPI - Python Edition''' | ||
− | <br>'''Python Edition of OWASP ESAPI v1 | + | <br>'''Python Edition of OWASP ESAPI v1.0 Has Been Released''' |
− | I'm pleased to announce that | + | I'm pleased to announce that version 1.0 has been released. To get a copy, go to our [http://code.google.com/p/owasp-esapi-python/ Google Code] site to [http://code.google.com/p/owasp-esapi-python/downloads/list download an archive]. If you want the bleeding edge, you can [http://code.google.com/p/owasp-esapi-python/source/checkout clone the Mercurial repository]. Documentation for the API is available [http://owasp-esapi-python.googlecode.com/hg/doc/index.html here]. |
− | + | Version 1.0 has been tested on Python 2.6 on Windows and Linux, but other versions have not been tested. If you take a look, I would appreciate it if you would send me an [mailto:[email protected] email] about your experience. | |
<br>'''README''' | <br>'''README''' | ||
Line 398: | Line 398: | ||
* Coverage module by Ned Batchelder v3.0.1 - Only needed if you want coverage analysis - http://pypi.python.org/pypi/coverage/3.0.1 | * Coverage module by Ned Batchelder v3.0.1 - Only needed if you want coverage analysis - http://pypi.python.org/pypi/coverage/3.0.1 | ||
* Nose 0.11.1 - Only needed if you want to run unit tests together and combine it with coverage analysis - http://pypi.python.org/pypi/nose/0.11.1 | * Nose 0.11.1 - Only needed if you want to run unit tests together and combine it with coverage analysis - http://pypi.python.org/pypi/nose/0.11.1 | ||
+ | |||
Installation: | Installation: | ||
+ | |||
* Install any of the missing dependencies listed above. | * Install any of the missing dependencies listed above. | ||
* Extract the ESAPI on Python package. | * Extract the ESAPI on Python package. | ||
* Add the extracted folder to your Python path. One way to do this is to create a text file, such as 'esapi.pth', in your Python installation's Lib\site-packages folder. Copy the path of the folder you extracted into this text file. The path should have the 'esapi' folder inside. | * Add the extracted folder to your Python path. One way to do this is to create a text file, such as 'esapi.pth', in your Python installation's Lib\site-packages folder. Copy the path of the folder you extracted into this text file. The path should have the 'esapi' folder inside. | ||
− | * Start a new interactive Python console and enter 'import esapi'. If you get no output, it ran successfully. If you got "ImportError: No module named esapi", double check the step above. | + | * Start a new interactive Python console and enter 'import esapi'. If you get no output, it ran successfully and you can move on to the next step. If you got "ImportError: No module named esapi", double check the step above. |
− | * By default, ESAPI is set up for Linux. If you are running ESAPI on Windows, you will need to modify the Encryptor_KeysLocation and Executor_WorkingDirectory settings in esapi/conf/settings.py. You should use forward slashes in the paths. | + | * By default, ESAPI is set up for Linux. If you are running ESAPI on Windows or wish to change these paths, you will need to modify the Encryptor_KeysLocation and Executor_WorkingDirectory settings in esapi/conf/settings.py AND esapi/test/conf/settings.py. You should use forward slashes in the paths. |
* See "To set up a crypto keyring" to generate the keys necessary for crypto. | * See "To set up a crypto keyring" to generate the keys necessary for crypto. | ||
* Run the unit tests by opening a shell or command prompt in esapi/test and running runTests.bat or runTests.sh, depending on your platform. If you get around 7 errors relating to crypto, please ensure you have followed the steps under "To set up a crypto keyring". | * Run the unit tests by opening a shell or command prompt in esapi/test and running runTests.bat or runTests.sh, depending on your platform. If you get around 7 errors relating to crypto, please ensure you have followed the steps under "To set up a crypto keyring". | ||
− | * '''Note''': Running all tests may appear to block or pause, particularly on Windows. This may be be due to exahaustion of the entropy pool. If it blocks, try moving the mouse, typing, or generating some disk activity. | + | * '''Note''': Running all tests may appear to block or pause, particularly on Windows. This may be be due to exahaustion of the entropy pool. If it blocks, try moving the mouse, typing, or generating some disk activity to help regenerate the entropy pool. |
+ | |||
To adapt and integrate with your project: | To adapt and integrate with your project: | ||
+ | |||
* You can use as much or as little of ESAPI as you would like. You'll want to do a 'from esapi.core import ESAPI' and use the methods that class provides. | * You can use as much or as little of ESAPI as you would like. You'll want to do a 'from esapi.core import ESAPI' and use the methods that class provides. | ||
+ | |||
To set up a crypto keyring: | To set up a crypto keyring: | ||
− | * Select a root directory for your keyring, like /esapi/keyring/, and set Encryptor_KeysLocation in settings.py to this string if you have not already. | + | |
+ | * Select a root directory for your keyring, like /esapi/keyring/, and set Encryptor_KeysLocation in BOTH settings.py files to this string if you have not already. | ||
* Open a python interactive shell and execute: | * Open a python interactive shell and execute: | ||
** from esapi.core import ESAPI | ** from esapi.core import ESAPI | ||
** ESAPI.encryptor().gen_keys() | ** ESAPI.encryptor().gen_keys() | ||
* Modify esapi/conf/settings.py according to the output by replacing the Encryptor_MasterSalt line with the one given. | * Modify esapi/conf/settings.py according to the output by replacing the Encryptor_MasterSalt line with the one given. | ||
+ | |||
+ | |||
+ | |||
+ | Why there are two conf directories: | ||
+ | * One conf directory, esapi/conf, is used for the running application. This file ships with very conservative defaults. | ||
+ | * The other conf directory, esapi/test/conf, is used only for unit tests. It should never be used with any app because it is insecure by default. It contains specific configuration elements that are tied to the unit tests. | ||
+ | |||
To enable internationalization: | To enable internationalization: | ||
+ | |||
* Set the 'LANGUAGE' environment variable with your locale | * Set the 'LANGUAGE' environment variable with your locale | ||
* On *nix: export LANGUAGE=en_US | * On *nix: export LANGUAGE=en_US | ||
* On Windows: set LANGUAGE=en_US | * On Windows: set LANGUAGE=en_US | ||
− | + | * Please note that as of this writing, no translation files are available. A GNU gettext .pot file is available in esapi/conf/locale . | |
− | * Please note that as of this writing, no translation files are available. A GNU gettext . | ||
====Haskell==== | ====Haskell==== |
Revision as of 23:55, 8 November 2009
About
OWASP Tools Project Enterprise Security API (ESAPI) OWASP Enterprise Security API Toolkits help software developers guard against security-related design and implementation flaws. 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. Further development of ESAPI occurs through mailing list discussions and occasional workshops, and suggestions for improvement are welcome. For more information, please contact us. ESAPI Toolkits Java EE
ESAPI Toolkits are designed to automatically take care of many aspects of application security, making these issues invisible to the developers. |
Sample Application - ESAPI Swingset
|
FAQ
More About OWASP ESAPI
- ESAPI interface documentation (JavaDocs)
- Project presentation (PowerPoint)
- Video presentation (YouTube)
- One Page Datasheet (PDF, Word)
- One page technical explanation of how ESAPI works (PDF)
- LAMP should be spelled LAMPE (PDF)
- Getting started designing for a level of assurance (PDF)
- ESAPI documentation plan (Word)
Related projects
- OWASP Top Ten
- OWASP Application Security Verification Standard
- XSS (Cross Site Scripting) Prevention Cheat Sheet
ESAPI documentation project status
Java EE
Java Edition of the OWASP ESAPI Toolkit - Release Quality
- The Java EE version of ESAPI is being lead by Jeff Williams. Feel free to contact him for further details.
We are seeking organizations willing to pilot 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!
Welcome to the ESAPI Java Edition
This document provides information about the Java Edition of OWASP ESAPI. The topics below cover system requirements, additional product information, and application notes. For information about the new features of this release, known issues, resolved issues, and limitations, refer to the Release notes.
Current Releases
- ESAPI 1.4 - Stable
- ESAPI 2.0rc3 - Release Candidate 3
For all downloads and project files, please click here
- Problems with the ESAPI may be reported here
- The current ESAPI JAR has been built for Java 1.5+. Please see ESAPI-Building or ESAPI-BuildingWithEclipse
- Here are the latest Javadocs for ESAPI
Running Demo App
The ESAPI Demo application has been named The ESAPI Swingset. More information about Swingset is available here.
ESAPI Demo application - The ESAPI Swingset
Documentation
'ESAPI 1.x Documentation
System Requirements
Any webserver that has approximately six megabytes of available disk space, and properly supports Java, such as Apache or Internet Information Services (IIS). The following is required to be installed on the server:
Java v1.5 or higher is required. There are no settings that are required to be set correctly in your properties files to use ESAPI.
Dependencies
There are no dependencies on the ESAPI interfaces other than standard Java EE. However, the reference implementation does have dependencies that are detailed below. The reference implementation takes advantage of a few existing libraries:
- DefaultAccessController needs…
- Commons-Configuration 1.5
- DefaultValidator needs…
- AntiSamy 1.2 (there may be a few transitive dependencies here)
- NekoHTML 0.9.5
- Xerces 2.9.1
- Log4J Logger needs…
- Log4j 1.2.12
- DefaultHTTPUtilities needs…
- Commons-FileUpload 1.2
- WAF needs
- XOM 1.0 (there may be a few transitive dependencies here)
- Commons-FileUpload 1.2
Roadmap
The ESAPI Java Roadmap can be found here
.NET
.NET Edition of the OWASP ESAPI Toolkit - Version 0.2 is released
- The .NET version of ESAPI is being lead by Alex Smolen. Feel free to contact him at (me AT AlexSmolen DOT com) for more information.
- If you're interested in application security, please join the OWASP ESAPI mailing list and help make ESAPI better!
OWASP ESAPI - .NET Edition ReadMe
Release 0.2: August 2009
Welcome to the .NET Edition of OWASP ESAPI v0.2
This document provides information about the .NET Edition of OWASP ESAPI. The topics below cover system requirements, additional product information, and application notes.
The code for the ESAPI is currently in Google Code.
Download the latest .NET ESAPI library binary from Google Code here.
Download the latest .NET ESAPI documentation from Google Code here. It is a zipped .chm (help) file.
You can also browse the .NET ESAPI documentation here
To download and work with the source you must use an SVN tool.
AnkhSVN is a free SVN tool that integrates with Visual Studio.
You can also browse the source.
System Requirements
The solution is created with VS 2008 and .NET 3.5. However, the actual code should be compatible with .NET 2.0, so it should be simple to get the code to compile in most environments.
Other Requirements
The .NET Edition of OWASP ESAPI includes a reference implementation which may be tailored or replaced, according to your organization's needs.
You must also download download and install the latest version of the AntiXss library.
Server Recommendations
None
Obtaining the .NET Edition of OWASP ESAPI
There are a couple of ways to get started with the .NET ESAPI.
If you simply want to start using the functionality, you can download the assembly from [ Google Code]. You will also need to add the appropriate configuration (see here).
You can download the solution from Google Code with SVN.
You will need to download and install the AntiXss library separately, in order to respect the code licensing.
The SwingSet application requires you to login - just register a username and go. You also need to supply a SMTP host in the web.config file in SwingSet in order to register a user, so that you can get an activation email. I might change this in the released version, since it's sort of a pain. You can just use the external SMTP server for an email account you own and use that - i.e.
<mailSettings> <smtp from="[email protected]"> <network host="you fill this part in, for example d.mx.mail.yahoo.com for a yahoo.com mail account" port="25" /> </smtp> </mailSettings>
OWASP ESAPI - .NET Edition Release Notes
Release 0.2
August 2009
Welcome to the .NET Edition of OWASP ESAPI v0.2
This document provides information about .NET Edition of OWASP ESAPI v0.2. Browse through the topics below to find out about new features, known issues and limitations for this release.
Information specific to the changes in this release are captured in this document set. For all other information and for feature details, see the ESAPI <version> programming manual.
New features
This release improve significantly on the first release. The following components have been redesigned and reimplemented:
- AccessController
- AccessReferenceMap
- Encoder
- Encryptor
- Esapi
- HttpUtilities
- IntrusionDetector
- Logger
- Randomizer
- SecurityConfiguration
- Validator
The SwingSet application has also been introduced, to demonstrate how to use the ESAPI as well as showcase other ASP.NET security bet practices.
Fixed in this release
- All components have been redesigned - there have been major changes since v0.1.
Known issues
- Canonicalization support is incomplete - only some Codecs support decoding.
- There are only a few ValidationRules.
- AccessController implementation does not provide policy storage.
Upgrading from earlier releases
- This version is an entirely different code base. Please completely upgrade all existing implementations.
Classic ASP
Classic ASP Edition of the OWASP ESAPI Toolkit - Alpha release is released
- The Classic ASP version of ESAPI is being lead by Juan C Calderon. Feel free to contact him at johnccr (at) yahoo.com
- join our OWASP Classic ASP Security Project Mailing List to be posted on the progress of the project or to contact us.
- We are working on minor fixes and documentation to release the first beta version of the software. Volunteers wanted!
OWASP ESAPI - Classic ASP Edition ReadMe
Release 0.9
March 2009
Welcome to the Classic ASP Edition of OWASP ESAPI v0.9
This document provides information about the Classic ASP Edition of OWASP ESAPI. The topics below cover system requirements, additional product information, and application notes.
For information about the new features of this release, known issues, resolved issues, and limitations, refer to the Release notes.
System Requirements
- Microsoft .NET Framework 2.0
Other Requirements
The Classic ASP Edition of OWASP ESAPI includes a reference implementation (look for default.asp.zip
file at Classic_ASP_Security_Project) which may be tailored or replaced, according to your organization's needs.
Server Recommendations
There is no specific recommendation
Obtaining the Classic ASP Edition of OWASP ESAPI
You can download the latest release of the Classic ASP Edition of OWASP ESAPI from the Google Code download page
When you download the source files, make sure that you keep the directory structure.
OWASP ESAPI - Classic ASP Edition Release Notes
Release 0.9
March 2009
Welcome to the Classic ASP Edition of OWASP ESAPI v0.9
This document provides information about Classic ASP Edition of OWASP ESAPI v0.9. Browse through the topics below to find out about new features, known issues and limitations for this release.
New features
This release includes the following new features:
- Implementation of most of the ESAPI .NET version for Classic ASP technology, including those for Access Control, Encoding, Input Validation, Encryption and much more (Authentication class was fully implemented yet)
- Sample Classic ASP page demonstrating the use of the different classes and methods
Fixed in this release
- Not applicable. This is the first release!
Known issues
- You might receive a compilation error when instantiating the
AccessController
class - You have to copy the web.config file to the IIS worker folder. For example to
C:\Windows\System32\inetsrv\w3wp.exe.config
in Windows Vista
Upgrading from earlier releases
- Not applicable. This is the first release!
PHP
The first release is under development!
- Who is working on this
- Project lead: Andrew van der Stock email
- Project manager: Mike Boberski email -- Email Mike if you would like to contribute to the project
- Development team: details here.
- Where the code is and its current status
- Documentation:
- Additional information
ColdFusion/CFML
ColdFusion/CFML Edition of the OWASP ESAPI Toolkit - First release is under development
- The ColdFusion/CFML version of ESAPI is being lead by Jason Dean (jason at 12robots dot com) and Bill Shelton (billshelton at comcast dot net). Feel free to contact either person for further details.
OWASP ESAPI - ColdFusion/CFML Edition
Release (TBD): May, 2009
Welcome to the ColdFusion/CFML Edition of OWASP ESAPI (v.TBD)
The ColdFusion/CFML edition of ESAPI will provide ESAPI functionality for developers using CFML. It is the project's intent to support Adobe ColdFusion, Railo, and Open BlueDragon. Development focus will be placed on CFML frameworks wishing to integrate CFESAPI.
Status
Development is currently underway. Roadmap and preliminary source code will be available shortly at the Google Code
project home.
Contribute
Any developers, framework providers, or CFML engine contributors interested in contributing, using and testing, please contact the project owners above and join the Google
mailing list.
Python
Python Edition of the OWASP ESAPI Toolkit - Now available!
- The Python version of ESAPI is being lead by Craig Younkins. Feel free to contact him for further details.
- We are currently looking for contributors. If you are interested in working on ESAPI on Python, please join our mailing list or send me an email.
- Google Code
- Documentation
- Bugs
OWASP ESAPI - Python Edition
Python Edition of OWASP ESAPI v1.0 Has Been Released
I'm pleased to announce that version 1.0 has been released. To get a copy, go to our Google Code site to download an archive. If you want the bleeding edge, you can clone the Mercurial repository. Documentation for the API is available here.
Version 1.0 has been tested on Python 2.6 on Windows and Linux, but other versions have not been tested. If you take a look, I would appreciate it if you would send me an email about your experience.
README
Requirements:
If you have setuptools installed, you should be able to install all except KeyCzar and Visual C++ 2008 by doing 'easy_install <packagename>' in a shell or command prompt.
- PyCrypto 2.01 - http://www.amk.ca/python/code/crypto
- PyCrypto requires a C Compiler. Windows users can us Visual C++ 2008 Express Edition - http://www.microsoft.com/express/vc/#webInstall
- KeyCzar 0.6b - http://www.keyczar.org/
- KeyCzar requires PyASN1 - http://pypi.python.org/pypi/pyasn1
- and simplejson, which is standard in 2.6 - http://pypi.python.org/pypi/simplejson
- PyLint 0.18.1 - Only needed for static analysis. - http://pypi.python.org/pypi/pylint
- Coverage module by Ned Batchelder v3.0.1 - Only needed if you want coverage analysis - http://pypi.python.org/pypi/coverage/3.0.1
- Nose 0.11.1 - Only needed if you want to run unit tests together and combine it with coverage analysis - http://pypi.python.org/pypi/nose/0.11.1
Installation:
- Install any of the missing dependencies listed above.
- Extract the ESAPI on Python package.
- Add the extracted folder to your Python path. One way to do this is to create a text file, such as 'esapi.pth', in your Python installation's Lib\site-packages folder. Copy the path of the folder you extracted into this text file. The path should have the 'esapi' folder inside.
- Start a new interactive Python console and enter 'import esapi'. If you get no output, it ran successfully and you can move on to the next step. If you got "ImportError: No module named esapi", double check the step above.
- By default, ESAPI is set up for Linux. If you are running ESAPI on Windows or wish to change these paths, you will need to modify the Encryptor_KeysLocation and Executor_WorkingDirectory settings in esapi/conf/settings.py AND esapi/test/conf/settings.py. You should use forward slashes in the paths.
- See "To set up a crypto keyring" to generate the keys necessary for crypto.
- Run the unit tests by opening a shell or command prompt in esapi/test and running runTests.bat or runTests.sh, depending on your platform. If you get around 7 errors relating to crypto, please ensure you have followed the steps under "To set up a crypto keyring".
- Note: Running all tests may appear to block or pause, particularly on Windows. This may be be due to exahaustion of the entropy pool. If it blocks, try moving the mouse, typing, or generating some disk activity to help regenerate the entropy pool.
To adapt and integrate with your project:
- You can use as much or as little of ESAPI as you would like. You'll want to do a 'from esapi.core import ESAPI' and use the methods that class provides.
To set up a crypto keyring:
- Select a root directory for your keyring, like /esapi/keyring/, and set Encryptor_KeysLocation in BOTH settings.py files to this string if you have not already.
- Open a python interactive shell and execute:
- from esapi.core import ESAPI
- ESAPI.encryptor().gen_keys()
- Modify esapi/conf/settings.py according to the output by replacing the Encryptor_MasterSalt line with the one given.
Why there are two conf directories:
- One conf directory, esapi/conf, is used for the running application. This file ships with very conservative defaults.
- The other conf directory, esapi/test/conf, is used only for unit tests. It should never be used with any app because it is insecure by default. It contains specific configuration elements that are tied to the unit tests.
To enable internationalization:
- Set the 'LANGUAGE' environment variable with your locale
- On *nix: export LANGUAGE=en_US
- On Windows: set LANGUAGE=en_US
- Please note that as of this writing, no translation files are available. A GNU gettext .pot file is available in esapi/conf/locale .
Haskell
Haskell Edition of the OWASP ESAPI Toolkit - First release is under development
- The Haskell version of ESAPI is being lead by Sigbjorn Finne. Feel free to contact him at sof 'AT' galois.com for further details.
- Details below will be filled in as work progresses. Volunteers wanted!
OWASP ESAPI - Haskell Edition ReadMe
Sigbjorn (and Galois, who is his employer) are contributors to the core Haskell language. The intent of this effort is to make ESAPI for Haskell part of Haskell itself.
News
Project News
- ESAPI Python version project possibly starting up. Please contact [email protected] for more information.
- ESAPI Java 2.0rc1 is nearing completion. Release in a few weeks. Please check SVN and send any last minute requests to the ESAPI list.
- We've had a request for an ESAPI ColdFusion edition. If there are any interested developers, please contact [email protected] to volunteer.
- ESAPI has been through a line-by-line review by a major systems integrator. We will post all the findings soon but they are pretty minor.
- OWASP ESAPI has been integrated into the OWASP Secure Software Contract Annex in the OWASP Legal Project.
- OWASP ESAPI is presented by Jeff Williams at OWASP Software Assurance Day DC 2009 in conjunction with the Software Assurance Forum sponsored by the US Department of Homeland Security, Department of Defense and National Institute of Standards and Technology.
Project Mail List
Subscribe here
Use here
Contributors/Users
Project Leader |
Users and Adopters The following organizations are a few of the many organizations that are starting to adopt ESAPI to secure their web applications:
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. |
Pages in category "OWASP Enterprise Security API"
The following 27 pages are in this category, out of 27 total.
C
E
- EASPI
- ESAPI Swingset
- ESAPI
- ESAPI Access Control
- ESAPI ClassicASP Readme
- ESAPI ColdFusion CFML Readme
- ESAPI Contributions
- ESAPI DotNET Readme
- ESAPI Javadocs
- ESAPI JavaScript Readme
- ESAPI Mapping
- ESAPI Plan
- ESAPI Python Readme
- ESAPI Secure Coding Guideline
- ESAPI Specification
- ESAPI Summit
- ESAPI-Building
- ESAPI-BuildingWithEclipse