2015-03-26 12 views
7

Ich versuche, die OWASP ESAPI-Bibliothek in meiner Webanwendung zu verwenden, um Anfrageparameter in JSPs zu umgehen, wie unten unter ESAPI.encoder(). EncodeForHTML (request.getParameter()).Wo finde ich ESAPI.properties?

Ich habe hinzugefügt ESAPI-2.1.0.jar unter WEB-INF/lib aber ich habe die unten Ausnahme

org.owasp.esapi.errors.ConfigurationException: ESAPI.properties nicht mit irgendwelchen Mitteln geladen werden konnte . Scheitern. org.owasp.esapi.reference.DefaultSecurityConfiguration.loadConfiguration (DefaultSecurityConfiguration.java:439)

Aber ich konnte ESAPI.properties in der JAR-Datei nicht finden. Irgendeine Idee, wo ich das bekommen kann? Wo sollte ich diese Eigenschaftendatei auch platzieren? Bitte helfen Sie.

+0

Eine einfache [Websuche] (https://www.owasp.org/index.php/ESAPI_Overview) liefert die Antwort. Bitte recherchieren Sie vor dem Posten hier. –

+1

Danke. Aber es beantwortet meine Frage immer noch nicht. Muss ich ESAPI.properties selbst erstellen? Ich dachte API bietet es aber nicht finden, wo kann ich die Datei herunterladen. – Pro

Antwort

8

Hier ist die Referenz: ESAPI installation guide. Sie können ESAPI.properties von here herunterladen.

Sie können die Datei ESAPI.properties selbst erstellen und denselben Inhalt dort platzieren. Es sollte in Ihrem Ordner "src/main/resources" platziert werden.

Außerdem benötigen Sie die Datei validation.properties, um XSS zu behandeln, die im Ordner 'src/test/resources' abgelegt werden sollte.

Bitte stellen Sie sicher, den Namen der Anwendung zu ändern, in diese Eigenschaften für Ihre Anwendung Datei wie in

Validator.Redirect=^\\/test.*$ 

test sollten mit Ihrem Anwendungsnamen ersetzt werden.

+4

Installationsanleitung für Java: https: //www.owasp.org/images/4/4c/JavaEE-ESAPI_2.0a_install.doc – anton1980

+4

Können wir einen aktualisierten Link für die ESAPI.properties-Datei erhalten, da der aktuelle tot ist. –

+0

Denken Sie an den neuen Link für ESAPI.properties: https://code.google.com/p/owasp-esapi-java/source/browse/trunk/configuration/esapi/ESAPI.properties –

2

Ich war für die gleiche Datei an, als während meine Webapp Bereitstellung war ich immer -

Mar 08, 2017 1:23:12 PM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet [mvc-dispatcher] in context with path [/WebDynamo] threw exception [org.owasp.esapi.errors.ConfigurationException: java.lang.reflect.InvocationTargetException SecurityConfiguration class (org.owasp.esapi.reference.DefaultSecurityConfiguration) CTOR threw exception.] with root cause 
java.lang.IllegalArgumentException: Failed to load ESAPI.properties as a classloader resource. 
    at org.owasp.esapi.reference.DefaultSecurityConfiguration.loadConfigurationFromClasspath(DefaultSecurityConfiguration.java:667) 

Wie auch immer für meine Webapp ich nur hinzugefügt ESAPI.properties in Quellstammordner (src-Ordner) (nicht fügen Sie es in jedem Paket hinzu). Und die Datei ist nur leer. Und Web-App funktioniert gut. Ich sehe folgende Protokolle in der Webapp so, wenn Sie jemals fragen, wo diese Datei dann diese beziehen gesucht wird -

Attempting to load ESAPI.properties via file I/O. 
Attempting to load ESAPI.properties as resource file via file I/O. 
Not found in 'org.owasp.esapi.resources' directory or file not readable: /Applications/Eclipse.app/Contents/MacOS/ESAPI.properties 
Not found in SystemResource Directory/resourceDirectory: .esapi/ESAPI.properties 
Not found in 'user.home' (/Users/athakur) directory: /Users/athakur/esapi/ESAPI.properties 
Loading ESAPI.properties via file I/O failed. Exception was: java.io.FileNotFoundException 
Attempting to load ESAPI.properties via the classpath. 
SUCCESSFULLY LOADED ESAPI.properties via the CLASSPATH from '/ (root)' using current thread context class loader! 
SecurityConfiguration for Validator.ConfigurationFile not found in ESAPI.properties. Using default: validation.properties 
Attempting to load validation.properties via file I/O. 
Attempting to load validation.properties as resource file via file I/O. 
Not found in 'org.owasp.esapi.resources' directory or file not readable: /Applications/Eclipse.app/Contents/MacOS/validation.properties 
Not found in SystemResource Directory/resourceDirectory: .esapi/validation.properties 
Not found in 'user.home' (/Users/athakur) directory: /Users/athakur/esapi/validation.properties 
Loading validation.properties via file I/O failed. 
Attempting to load validation.properties via the classpath. 
validation.properties could not be loaded by any means. fail. Exception was: java.lang.IllegalArgumentException: Failed to load ESAPI.properties as a classloader resource. 
SecurityConfiguration for ESAPI.printProperties not found in ESAPI.properties. Using default: false 
SecurityConfiguration for Encryptor.CipherTransformation not found in ESAPI.properties. Using default: AES/CBC/PKCS5Padding 
SecurityConfiguration for ESAPI.Encoder not found in ESAPI.properties. Using default: org.owasp.esapi.reference.DefaultEncoder 
SecurityConfiguration for ESAPI.Logger not found in ESAPI.properties. Using default: org.owasp.esapi.reference.JavaLogFactory 
SecurityConfiguration for Logger.LogApplicationName not found in ESAPI.properties. Using default: true 
SecurityConfiguration for Logger.LogServerIP not found in ESAPI.properties. Using default: true 
SecurityConfiguration for Logger.ApplicationName not found in ESAPI.properties. Using default: DefaultName 

Ich bin sicher, diese sind konfigurierbar und andere Dateien können auch Sie es src Ordner hinzufügen können. Auch fand ich diese Datei in -

https://github.com/OWASP/EJSF/blob/master/esapi_master_FULL/WebContent/ESAPI.properties

Die Datei ist ziemlich groß, es ist Inhalt hier einfügen, sondern basierend auf Standardwerte als pro-Protokolle setzen über folgende Dinge benötigt -

ESAPI.printProperties=true 
Encryptor.CipherTransformation=AES/CBC/PKCS5Padding 
ESAPI.Encoder=org.owasp.esapi.reference.DefaultEncoder 
# Log4JFactory Requires log4j.xml or log4j.properties in classpath - http://www.laliluna.de/log4j-tutorial.html 
ESAPI.Logger=org.owasp.esapi.reference.Log4JLogFactory 
# Determines whether ESAPI should log the application name. This might be clutter in some single-server/single-app environments. 
Logger.LogApplicationName=true 
# Determines whether ESAPI should log the server IP and port. This might be clutter in some single-server environments. 
Logger.LogServerIP=true 
# Set the application name if these logs are combined with other applications 
Logger.ApplicationName=ExampleApplication