Nicht sichere Ausdrücke in Mashups ersetzen
Im Mashup Builder werden Ausdrücke in Funktionen und Widgets unterstützt. Ein Ausdruck ist ein Ausschnitt aus JavaScript-Code, der einen einzelnen Wert ergibt. In der Regel werden Ausdrücke verwendet, um benutzerdefinierte Geschäftslogik in einer Mashup-Anwendung zu erstellen. Sie können benutzerdefinierte Ausdrücke schreiben, um Daten für Widgets, Funktionen und Datendienste in einem Mashup zu validieren, zu berechnen, zu konvertieren und zu vergleichen. Zusätzlich zu Funktionen werden auch Ausdrücke verwendet, um die Eingabevalidierung in Widgets vom Typ "Raster" zu aktivieren.
In Mashup-Ausdrücken wurde ein Sicherheitsproblem entdeckt, das es einem authentifizierten ThingWorx Benutzer mit Bearbeitungsberechtigungen für ein Mashup ermöglicht, das DOM zusätzlich zu Funktionen und Objekten für Widgets und Mashups zur Laufzeit zu ändern. Dieses Problem ist auf die Mashup-Laufzeitumgebung beschränkt und ermöglicht es Benutzern nicht, Code remote auf dem Plattformserver auszuführen. Im Rahmen der Sicherheitskorrektur wurden aktuelle Funktionen in den Versionen 9.3.2, 9.2.7, 9.1.11 und 9.0.16 oder höher der ThingWorx Plattform ersetzt. Die folgenden Widgets und Funktionen unterstützen benutzerdefinierte Ausdrücke und sind von diesem Problem betroffen:
• Funktion
Ausdruck – wertet einen Ausdruck aus und gibt einen Wert zurück.
• Funktion
Validator – wertet einen Ausdruck aus und gibt einen booleschen Wert vom Typ "true" oder "false" zurück.
• Widget
Raster (Legacy) – unterstützt Ausdrücke für die Eingabevalidierung.
Außerdem sind die folgenden Legacy-Widgets für nicht unterstützte Versionen von ThingWorx (8.4 oder früher) betroffen:
• Widget "Ausdruck"
• Widget "Validator"
Die folgenden Verbesserungen wurden in den Versionen 9.3.2, 9.2.7, 9.1.11 und 9.0.16 oder höher der ThingWorx Plattform eingeführt, um die Sicherheit zu verbessern:
• Neuen standardmäßigen und sichereren Ersatz für vorhandene nicht sichere Funktionen hinzugefügt. Sie können nicht sichere Funktionen in einem Mashup manuell über den Fensterbereich Funktionen ersetzen, um die Auswirkungen auf Ihre Mashup-Anwendungen zu minimieren.
Es wird dringend empfohlen, die neueste Standardversion zu verwenden. Die vorhandenen nicht sicheren Funktionen funktionieren jedoch weiter, bis sie in einer zukünftigen Version entfernt werden.
• Möglichkeit, nicht sichere Funktionen in einer neuen Mashup-Entität zu erstellen, entfernt. Sie können jedoch nicht sichere Funktionen in vorhandenen Mashups hinzufügen oder aktualisieren.
• Boolesche Eigenschaft zu Raster-Widgets hinzugefügt, wodurch Sie zu den neuesten sicheren Validatoren wechseln können.
• Vorhandene nicht sichere Ausdrucks- und Validatorfunktionen im Fensterbereich Funktionen unter der Beschriftung Nicht sicher gruppiert.
• Zugriff auf globale
TW.Runtime-Funktionen und -Objekte,
jQuery und DOM-Elemente in Ausdrücken eingeschränkt, die von Ausdrucks- und Validatorfunktionen verwendet werden (zusätzlich zum Raster-Validator). Wenn Sie ThingWorx Laufzeitobjekte und -funktionen in Ihren Mashup-Ausdrücken verwenden, müssen Sie Ihre Ausdrücke möglicherweise manuell aktualisieren und verifizieren, wenn Sie eine nicht sichere Funktion ersetzen. Weitere Informationen zu den unterstützten Funktionen und Objekten finden Sie unter
Unterstützte Laufzeitfunktionen und -objekte.
|
Es wird dringend empfohlen, ein Upgrade auf die neuesten Versionen von ThingWorx mit den neuesten Sicherheitsaktualisierungen durchzuführen, sobald sie verfügbar sind.
|
Betroffene Versionen von ThingWorx
Alle Mashups, die Ausdrücke in Funktionen und Widgets in den folgenden unterstützten Versionen von ThingWorx verwenden, sind von dieser Änderung betroffen:
• ThingWorx 9.0.0 bis 9.0.15
• ThingWorx 9.1.0 bis 9.1.10
• ThingWorx 9.2.0 bis 9.2.6
• ThingWorx 9.3.0 und 9.3.1
Ab ThingWorx Version 9.3.2, 9.2.7, 9.1.11 und 9.0.16 oder höher ist der Zugriff auf Laufzeitobjekte und -funktionen des Mashups in JavaScript-Ausdrücken eingeschränkter. Diese Einschränkungen wurden hinzugefügt, um die Anwendungssicherheit zu verbessern und potenzielle Sicherheitslücken zu reduzieren.
|
Nicht unterstützte Versionen von ThingWorx, die benutzerdefinierte Ausdrücke unterstützen, wie ThingWorx 8.4.x und 8.5.x, sind ebenfalls betroffen. Wenn Sie derzeit eine nicht unterstützte Version von ThingWorx verwenden, wird dringend empfohlen, zur neuesten Version zu migrieren. Wenn Sie nicht unterstützte Versionen des Produkts verwenden, sind Sie evtl. Sicherheitsrisiken ausgesetzt.
|