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"
Deleted user (talk | contribs) |
Deleted user (talk | contribs) |
||
Line 157: | Line 157: | ||
====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}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
====Python==== | ====Python==== |
Revision as of 18:49, 10 March 2010
Home
Don’t write your own security controls! 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. OWASP Enterprise Security API (ESAPI) Toolkits help software developers guard against security‐related design and implementation flaws. ESAPI is designed to make it easy to retrofit security into existing applications, as well as providing a solid foundation for new development. Allowing for language-specific differences, all OWASP ESAPI versions have the same basic design:
|
Let's talk hereFurther development of ESAPI occurs through mailing list discussions and occasional workshops, and suggestions for improvement are welcome. For more information, please contact us. |
Got developer cycles?The ESAPI project is always on the lookout for volunteers who are interested in contributing developer cycles.
|
Related resources |
Did you know...
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
- Galois
- Foundstone(McAfee)
- The Hartford
- Infinite Campus
- Lockheed Martin
- MITRE
- Nationwide Insurance
- SANS Institute
- U.S. Navy - SPAWAR
- World Bank
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.
Downloads
|
Glossary
- 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.
Java EE
PROJECT INFO What does this OWASP project offer you? |
RELEASE(S) INFO What does this OWASP project release offer you? | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
.NET
PROJECT INFO What does this OWASP project offer you? | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Classic ASP
PROJECT INFO What does this OWASP project offer you? | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
PHP
PROJECT INFO What does this OWASP project offer you? | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
ColdFusion/CFML
PROJECT INFO What does this OWASP project offer you? | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Python
PROJECT INFO What does this OWASP project offer you? | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Python Edition of the OWASP ESAPI Toolkit
- 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 BETA Has Been Released
I'm pleased to announce that a beta of version 1 has been released. To get a copy, go to our Google Code site to clone the Mercurial repository or download an archive. Documentation for the API is available here.
This beta 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. 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.
- 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 exhaustion of the entropy pool. If it blocks, try moving the mouse, typing, or generating some disk activity.
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 settings.py 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.
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 .po file is available in esapi/conf/locale .
JavaScript
PROJECT INFO What does this OWASP project offer you? | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
JavaScript Edition of the OWASP ESAPI Toolkit - Alpha Quality
- The JavaScript version of ESAPI is being lead by Chris Schmidt.
- We are seeking organizations willing to pilot ESAPI and work with us to make this library better. Please contact Chris for more information.
- If you're interested in application security, please join the OWASP ESAPI Developer mailing list and help make ESAPI better!
- If you have questions about using ESAPI, please post to the OWASP ESAPI Users mailing list.
Welcome to the ESAPI JavaScript Edition
This document provides information about the JavaScript 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
For all downloads and project files, please click here
- Problems with the ESAPI may be reported here
ESAPI SVN Repository
Checkout ESAPI source from its home on Google code
System Requirements
Any webserver that has approximately 200 kilobytes of available disk space, and properly supports JavaScript, such as Apache or Internet Information Services (IIS).
There are no settings that are required to be set correctly in your properties files to use ESAPI.
Browser Compatibility
- Tested in:
- Linux
- Chrome 3.0, Firefox 3.0-3.5
- Windows
- Chrome 3.0, Firefox 3.5, Internet Explorer 7.0
- Linux
If you would like to test in additional browsers, please let me know
Dependencies
- Reference API
- Unit Tests
Roadmap
Coming soon!
Haskell
PROJECT INFO What does this OWASP project offer you? | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
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.
Project Details
Please see each language's tab for each version's project details.
Please take a brief moment to take this survey and let the ESAPI Development Team know how we are doing
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