
OWASP Enterprise Security API-Bibliothek, die Sicherheitskontrollen für Java-Webanwendungen bereitstellt, einschließlich Authentifizierung, Zugriffskontrolle, Eingabevalidierung, Verschlüsselung und Kodierung, um das Schwachstellenrisiko zu reduzieren.
| OWASP® ESAPI (The OWASP Enterprise Security API) ist eine freie Open-Source-Bibliothek mit Sicherheitskontrollen für Webanwendungen, die es Programmierern erleichtert, Anwendungen mit geringerem Risiko zu entwickeln. Die Bibliothek ESAPI for Java wurde entwickelt, um es Programmierern zu erleichtern, Sicherheit in bestehende Anwendungen nachzurüsten. ESAPI for Java dient außerdem als solide Grundlage für die Neuentwicklung. |
Sie finden die OWASP-ESAPI-Wiki-Seiten unter https://owasp.org/www-project-enterprise-security-api/. Das GitHub-Repository von ESAPI Legacy enthält ebenfalls einige nützliche Wiki-Seiten.
Dies ist der Legacy-Zweig von ESAPI, was bedeutet, dass es sich um einen aktiv gepflegten Zweig des Projekts handelt, jedoch wird für diesen Zweig keine wesentliche *neue* Funktionsentwicklung mehr betrieben. Funktionen, die bereits für den 2.x-Zweig geplant sind, werden umgesetzt. Sie finden das GitHub-Repository unter [https://github.com/ESAPI/esapi-java-legacy](https://github.com/ESAPI/esapi-java-legacy).
WICHTIGE HINWEISE: Der Standardzweig für ESAPI Legacy ist jetzt der 'develop'-Zweig (anstelle des 'main'-Zweigs (früher 'master')), in dem künftige Entwicklung, Fehlerbehebungen usw. durchgeführt werden. Der 'main'-Zweig ist jetzt als "geschützt" markiert; er spiegelt die neueste stabile ESAPI-Version (Stand heute 2.1.0.1) wider. Beachten Sie, dass sich diese Änderung – den 'develop'-Zweig zum Standard zu machen – auf Pull-Requests auswirken kann, die Sie einzureichen beabsichtigten.
Außerdem ist die minimale Basisversion von Java für die Nutzung von ESAPI Java 7. (Dies wurde während des 2.2.0.0-Releases von Java 6 geändert.)
https://github.com/ESAPI/esapi-java
Beachten Sie jedoch, dass die Arbeit an ESAPI 3 noch nicht ernsthaft begonnen hat und sich erst in den frühesten Planungsphasen befindet. Selbst der derzeit vorhandene Code wird sich wahrscheinlich ändern.
Die ESAPI-Versionshinweise finden Sie im "documentation"-Verzeichnis von ESAPI. Sie heißen in der Regel "esapi4java-core-2.#.#.#-release-notes.txt", wobei sich "2.#.#.#" auf die ESAPI-Release-Nummer bezieht (die semantische Versionierung verwendet).
Ab ESAPI 2.2.3.0 verwendet ESAPI eine Version von AntiSamy, die standardmäßig 'slf4j-simple' enthält und eine XML-Schema-Validierung der AntiSamy-Richtliniendateien durchführt. Bitte LESEN Sie die Versionshinweise für das 2.2.3.0-Release (zumindest den Anfang) für einige wichtige Hinweise, die sich wahrscheinlich auf Ihre Nutzung von ESAPI auswirken werden! Sie wurden gewarnt!!!
Das neueste ESAPI-Release ist 2.2.3.0. Die Standard-Konfigurations-JAR und ihre GPG-Signatur finden Sie unter esapi-2.2.3.0-configuration.jar bzw. esapi-2.2.3.0-configuration.jar.asc.
Die neuesten regulären ESAPI-JARs sind über Maven Central erhältlich.
Bevor Sie jedoch ein neues Projekt mit ESAPI beginnen, lesen Sie unbedingt "Sollte ich ESAPI verwenden?".
Sofern wir es nicht versehentlich vermasseln, ist es unsere Absicht, Klassen, Methoden und/oder Felder, die als "@deprecated" annotiert wurden, mindestens zwei (2) Jahre lang oder bis zur nächsten Hauptversionsnummer (z. B. derzeit 3.x) zu behalten, je nachdem, was zuerst eintritt, bevor wir sie entfernen. Beachten Sie, dass diese Richtlinie nicht für Klassen im Paket org.owasp.esapi.reference gilt. Es wird nicht erwartet, dass Sie solche Klassen direkt in Ihrem Code verwenden.
Erstellen Sie einen Fork und reichen Sie einen Pull-Request ein! Einfach wie Pi! Wir akzeptieren in der Regel nur Fehlerbehebungen, keine neuen Funktionen, da wir als Legacy-Projekt nicht beabsichtigen, neue Funktionen hinzuzufügen, obwohl wir Ausnahmen machen können. Wenn Sie eine neue Funktion vorschlagen möchten, besprechen Sie diese am besten über die weiter unten erwähnte ESAPI-DEV-Mailingliste. Beachten Sie, dass wir alle Pull-Requests prüfen, einschließlich des Codestils aller Beiträge; verwenden Sie denselben Codestil, den Sie in den Dateien vorfinden, die Sie bereits bearbeiten.
Wenn Sie neu bei ESAPI sind, ist ein guter Einstieg, nach GitHub-Issues mit dem Label 'good first issue' zu suchen. (Um z. B. alle offenen Issues mit diesem Label zu finden, verwenden Sie https://github.com/ESAPI/esapi-java-legacy/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22.)
Weitere Einzelheiten finden Sie in der Datei 'CONTRIBUTING-TO-ESAPI.txt'.
Mitte 2014 hat ESAPI den gesamten Code zu GitHub migriert. Diese Migration wurde im November 2014 abgeschlossen.
Alle Issues von Google Code wurden zu GitHub-Issues migriert. Uns wurde eine JIRA/Confluence-Instanz zugewiesen, aber sie wurde nicht so konfiguriert, dass sie mit den GitHub-Issues synchronisiert wird, und daher sollte sie nicht verwendet werden. JIRA ist an sich in Ordnung, aber wenn wir sie nicht mit GitHub-Issues synchronisieren können (wo die Mehrheit unserer Benutzer Issues meldet), ist sie nicht nutzbar. Als Entwickler möchten wir keine Zeit damit verbringen, Issues von mehreren Fehlerverfolgungsseiten zu schließen. Bitte verwenden Sie daher bis zu dieser Synchronisierung (siehe GitHub-Issue #371) AUSSCHLIESSLICH GitHub zur Meldung von Fehlern.
Wenn Sie ein Issue melden, seien Sie bitte präzise und versuchen Sie sicherzustellen, dass das ESAPI-Entwicklungsteam ausreichend Informationen hat, um Ihre Ergebnisse zu reproduzieren. Falls Sie es noch nicht getan haben, ist dies vielleicht ein guter Zeitpunkt, Eric S. Raymonds Klassiker "How to Ask Questions the Smart Way" unter http://www.catb.org/esr/faqs/smart-questions.html zu lesen, bevor Sie Ihr Issue veröffentlichen.
Wenn Sie einen Fehler gefunden haben, erstellen Sie ein Issue im esapi-legacy-java-Repository: https://github.com/ESAPI/esapi-java-legacy/issues
HINWEIS: Bitte verwenden Sie GitHub-Issues NICHT, um Fragen zu ESAPI zu stellen. Wenn Sie dies tun möchten, posten Sie an eine der 2 Mailinglisten (jetzt auf Google Groups), die Sie am Ende dieser Seite finden. Wenn wir Fragen als GitHub-Issues finden, schließen wir sie einfach und verweisen Sie darauf, dies ohnehin zu tun.