Content Security Policy
In ThingWorx Platform wurde ab ThingWorx 9.3.15, 9.4.5 und 9.5.1 die Content Security Policy (CSP) hinzugefügt, um den Sicherheitsstatus von ThingWorx Clients zu verbessern.
CSP
Die CSP ist ein zentrales Sicherheitstool, das Web-Browser verwenden, um vor Cross-Site Scripting (XSS), Clickjacking und anderen Angriffen durch Einschleusen von Daten zu schützen. Die CSP arbeitet so, dass CSP-Kopfzeilen aus ThingWorx Platform in den Webbrowser eingefügt werden, um zu steuern, welche dynamischen Daten und Ressourcen der Browser laden kann und aus welchen Domänen diese geladen werden können. Ressourcenanforderungen von außerhalb der zulässigen Domäne können nicht in den Browser geladen werden.
Beispiele für kontrollierte Ressourcen:
Laden von Schriftarten, Bilder und JavaScript-Bibliotheken
Rendern von Inhalt von einer fremden Quelle in einem iFrame auf einem ThingWorx Mashup
Rendern von ThingWorx Seiteninhalt in einem iFrame auf einer fremden Seite, z.B. Rendern eines ThingWorx Mashups auf einer Windchill Seite
Der Administrator konfiguriert CSP-Anweisungen über ThingWorx Composer. Die CSP-Kopfzeile ist eine Kombination aller Anweisungen und stellt die CSP-Richtlinie dar. Die CSP-Kopfzeile ist auf 1200 Zeichen begrenzt.
In ThingWorx ist die Content Security Policy Ebene 2 implementiert. Weitere Informationen zur CSP finden Sie unter:
Composer
Hauptseiten-Banner
In ThingWorx Composer wird ein nicht blockierendes Warn-Banner oben im Composer angezeigt: Content Security Policy (CSP) ist nicht aktiviert. Weitere Informationen finden Sie im Hilfe-Center.. Damit werden Administratoren auf diese neue Sicherheitsfunktion aufmerksam gemacht und darauf hingewiesen, dass diese nicht aktiviert ist.
Dieses Banner wird nur angezeigt, wenn die CSP nicht aktiviert ist, und ist nur für Administratoren sichtbar. Administratoren können die Warnung für sich selbst schließen, sodass sie bei zukünftigen Anmeldungen nicht mehr angezeigt wird. Für andere Administratoren wird das Banner weiterhin angezeigt, bis sie es schließen. Das Banner enthält einen Hilfe-Center-Link zum Thema "Content Security Policy".
CSP konfigurieren
Administratoren konfigurieren die CSP auf der Unterseite "Content Security Policy-Regeln" des Plattform-Subsystems. Auf dieser Seite können Administratoren Anweisungen hinzufügen und ändern, die die Richtlinie definieren. Weitere Informationen finden Sie unter Kopfzeilenwerte der Content Security Policy (CSP) konfigurieren.
CSP aktivieren
Die CSP wird durch Festlegen eines neuen Parameters in platform-settings.json aktiviert: “EnableContentSecurityPolicyFilter”: true.
Wenn "EnableContentSecurityPolicyFilter" auf wahr festgelegt ist, ist der CSP-Schutz aktiviert. Wenn "EnableContentSecurityPolicyFilter" auf falsch festgelegt oder nicht in platform-settings.json enthalten ist, ist die CSP deaktiviert.
Anweisungen zum Installieren und Aktualisieren finden Sie im Abschnitt Installation und Upgrade im Hilfe-Center.
Neue ThingWorx Platform Installation mit CSP-Filter
Manuelle Installation
ThingWorx Foundation Installationsprogramm
ThingWorx auf Versionen aktualisieren, die die CSP unterstützen
Informationen zum Wartungsversion-Upgrade finden Sie unter Wartungsversion-Upgrade.
Informationen zum manuellen Upgrade unter Windows finden Sie in folgenden Themen:
Informationen zum manuellen Upgrade unter Linux finden Sie in folgenden Themen:
Informationen zu ThingWorx Foundation Installationsprogramm-Upgrade finden Sie unter Installationsprogramm-Upgrade.
CSP in einer vorhandenen Umgebung aktivieren oder deaktivieren
Führen Sie die folgenden Schritte aus, um die CSP in einer vorhandenen Umgebung zu aktivieren oder zu deaktivieren:
1. Legen Sie das Kennzeichen EnableContentSecurityPolicyFilter im Abschnitt "BasicSettings" unter "PlatformSettingsConfig" in der Datei platform-settings.json auf wahr fest.
2. Starten Sie den Tomcat-Server neu.
* 
Beim Starten von ThingWorx werden ClickjackFilter-Konfigurationen aus web.xml automatisch zur CSP migriert, wenn alle folgenden Bedingungen erfüllt sind:
Der CSP-Filter ist aktiviert.
Der Clickjack-Filter wurde in web.xml konfiguriert.
Der CSP-Filter wurde nicht bereits von ThingWorx Administratoren in ThingWorx Composer konfiguriert.
ClickjackFilter-Einstellungen zur CSP migrieren
Beim Starten von ThingWorx werden ClickjackFilter-Konfigurationen automatisch zur CSP migriert, wenn alle folgenden Bedingungen erfüllt sind:
Der Content Security Policy-Filter ist aktiviert, d.h. EnableContentSecurityPolicyFilter ist auf wahr festgelegt.
Der Clickjack-Filter wurde über web.xml konfiguriert.
Der CSP-Filter ist nicht bereits über die Benutzeroberfläche konfiguriert.
ClickjackFilter kann in einem der folgenden drei Modi konfiguriert werden: SAMEORIGIN, DENY und ALLOWLIST.
Wenn für ClickjackFilter SAMEORIGIN konfiguriert ist, wird nichts migriert, da dies die CSP-Standardkonfiguration für frame-ancestors ist.
<filter>
<filter-name>ClickjackFilterSameOrigin</filter-name>
<filter-class>com.thingworx.security.filter.ClickjackFilter</filter-class>
<init-param>
<param-name>mode</param-name>
<param-value>SAMEORIGIN</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>ClickjackFilterSameOrigin</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Wenn für ClickjackFilter DENY konfiguriert ist, wird für die CSP-Kopfzeile frame-ancestors 'none' konfiguriert.
<filter>
<filter-name>ClickjackFilterDeny</filter-name>
<filter-class>com.thingworx.security.filter.ClickjackFilter</filter-class>
<init-param>
<param-name>mode</param-name>
<param-value>DENY</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>ClickjackFilterDeny</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Wenn für ClickjackFilter ALLOWLIST konfiguriert ist, werden die CSP-Kopfzeilen frame-ancestors und frame-src so konfiguriert, dass die konfigurierten Domänen zugelassen sind.
<filter>
<filter-name>ClickjackFilterAllowList</filter-name>
<filter-class>com.thingworx.security.filter.ClickjackFilter</filter-class>
<init-param>
<param-name>mode</param-name>
<param-value>ALLOWLIST</param-value>
</init-param>
<init-param>
<param-name>domains</param-name>
<param-value>http://example.com</param-value>
</init-param>
</filter>
<filter>
<filter-mapping>
<filter-name>ClickjackFilterAllowList</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
War dies hilfreich?