Installation und Upgrade > ThingWorx installieren > ThingWorx Konfigurationsressourcen > Einstellungen des ESAPI-Validierers konfigurieren
Einstellungen des ESAPI-Validierers konfigurieren
Die Kopfzeilen-/Parametervalidierung für die HTTP-Anforderung über die Enhanced Security Application Programming Interface (ESAPI) kann über die Datei validation.properties konfiguriert werden. Die Datei validation.properties wird beim Start von ThingWorx erstellt und befindet sich am folgenden Speicherort: /ThingworxStorage/esapi. Sie können das regex-Muster konfigurieren, um Kopfzeilen/Eigenschaften hinzuzufügen oder vorhandene Werte zu ändern.
Neue Kopfzeilen konfigurieren
Um eine neue Kopfzeile zu konfigurieren, fügen Sie der Datei validation.properties Folgendes hinzu. Beim Kopfzeilennamen wird die Groß-/Kleinschreibung nicht beachtet.
"Validator.HTTPHeaderValue_{new-header-name}={regex}"
Neue Parameter konfigurieren
Um einen neuen Parameter zu konfigurieren, fügen Sie der Datei validation.properties Folgendes hinzu: Beim Parameternamen wird die Groß-/Kleinschreibung beachtet.
Validator.HTTPParameterValue_{new-parameter-name}={regex}"
Standardverhalten
ThingWorx verwendet den in der Datei validation.properties definierten regulären Ausdruck (regex) für jede Kopfzeile und jeden Parameter zum Musterabgleich.
Wenn eine HTTP-Anforderung eine Kopfzeile enthält, die nicht in der Datei validation.properties definiert ist, verwendet ThingWorx für den Musterabgleich das für Validator.HTTPHeaderValue definierte regex-Muster.
Wenn eine HTTP-Anforderung einen Parameter enthält, der nicht in der Datei validation.properties definiert ist, verwendet ThingWorx für den Musterabgleich das für Validator.HTTPParameterValue definierte regex-Muster.
ThingWorx leert den Wert jeder Kopfzeile und jedes Parameters in der HTTP-Anforderung, wenn ein Wert nicht mit seinem entsprechenden regex-Muster übereinstimmt.
ESAPI validiert die Länge der Parameter und Kopfzeilen (via HTTPRequestHeaderMaxLength und HTTPRequestParameterMaxLength). Die Standardlänge beträgt jeweils 2000 Zeichen, dies kann jedoch in der Datei platform-settings.json geändert werden. Siehe das folgende Beispiel:
{
"PlatformSettingsConfig": {
"BasicSettings": {
"HTTPRequestHeaderMaxLength": 2000,
"HTTPRequestParameterMaxLength": 2000
}
},
"PersistenceProviderPackageConfigs": {
"PostgresPersistenceProviderPackage": {
"ConnectionInformation": {
"jdbcUrl": "jdbc:postgresql://localhost:5432/thingworx",
"password": "password",
"username": "twadmin"
}
}
}
}
Nachdem ein Wert anhand eines konfigurierten regulären Ausdrucks validiert wurde, führt ESAPI außerdem die folgenden Validierungen durch:
1. Prüfung auf mehrere kodierte Token (z.B. Prozentzeichen und Cookies) im Wert; ein Fehler wird ausgegeben, wenn mehr als ein kodiertes Token gefunden wird. Diese Prüfung kann deaktiviert werden, indem Encoder.AllowMultipleEncoding=true am Anfang der Datei validation.properties hinzufügt wird.
2. Wenn mehrere kodierte Token vorhanden und mehrere Kodierungen zulässig sind, wird außerdem mit einer Prüfung sichergestellt, dass alle Kodierungen vom gleichen Typ sind. Diese Prüfung kann deaktiviert werden, indem Encoder.AllowMixedEncoding=true am Anfang der Datei validation.properties hinzufügt wird.
Vor einem Upgrade von ThingWorx 6.0 und höher erforderliche Aktion
Wenn Sie ein Upgrade von Version 6.0 oder höher durchführen, müssen Sie die vorhandene Datei validation.properties aus dem Ordner /ThingworxStorage/esapi entfernen, bevor Sie mit dem Upgrade beginnen. Wenn Sie die Datei nicht entfernen, wird die aktuelle Version der Datei beim Upgrade nicht mit der aktualisierten Datei mit diesen zusätzlichen Parametern überschrieben.
Ausführliche Upgrade-Anweisungen finden Sie im ThingWorx Installationsdokument auf der Seite "Referenzdokumente".
War dies hilfreich?