Definición del modelo de ThingWorx en Composer > Seguridad > Directiva de seguridad del contenido
Directiva de seguridad del contenido
Para mejorar la postura de seguridad de los clientes de ThingWorx, añadimos la directiva de seguridad del contenido (CSP) a ThingWorx Platform a partir de ThingWorx 9.3.15, 9.4.5 y 9.5.1.
CSP
CSP es una herramienta de seguridad clave que usan los exploradores Web para proteger contra la creación de scripts en sitios cruzados (XSS), el secuestro de pulsación y otros ataques de inyección de datos. CSP funciona inyectando cabeceras de CSP desde ThingWorx Platform en el explorador Web para controlar qué datos dinámicos y recursos puede cargar el explorador y de qué dominios. Las solicitudes de recurso fuera del dominio permitido no se pueden cargar en el explorador.
A continuación se proporcionan ejemplos de recursos controlados:
Carga de fuentes, imágenes y bibliotecas de JavaScript.
Fotorrealismo de contenido de un origen ajeno en un iFrame de un mashup de ThingWorx.
Fotorrealismo del contenido de la página de ThingWorx en un iFrame de una página ajena, como la representación de un mashup de ThingWorx en una página Windchill.
El administrador configura las directivas de CSP a través de ThingWorx Composer. La cabecera de CSP es una combinación de todas las directivas y constituye la directiva CSP. La cabecera de CSP se limita a 1200 caracteres.
ThingWorx ha implementado el nivel 2 de directivas de seguridad del contenido. Para obtener más información sobre CSP, consulte lo siguiente:
Composer
Banner de página principal
Para alertar a los administradores de esta nueva funcionalidad de seguridad y advertirles de que no está activada, en ThingWorx Composer se muestra un banner de aviso no bloqueante La directiva de seguridad del contenido (CSP) no está activada. Para obtener más información, consulte el centro de ayuda. en la parte superior de Composer.
Este banner solo aparecerá si CSP no está activado y solo aparece para los administradores. Los administradores pueden descartar el aviso por sí mismos para que no aparezca en futuras conexiones. Otros administradores seguirán recibiendo el banner hasta que lo descarten. En el banner se incluye un vínculo de centro de ayuda al tema de directiva de seguridad del contenido.
Configuración de CSP
Los administradores configurarán CSP a través de la subpágina Reglas de la directiva de seguridad del contenido en el subsistema de plataforma. En esta página, los administradores pueden añadir y modificar las directivas que definen la directiva. Para obtener más información, consulte Configuración de valores de cabecera de la directiva de seguridad del contenido.
Activación de CSP
CSP se activa definiendo un nuevo parámetro en platform-settings.json: “EnableContentSecurityPolicyFilter”: true.
Si "EnableContentSecurityPolicyFilter" se define en true, la protección de CSP está activada. Si "EnableContentSecurityPolicyFilter" se define en false o no se incluye en platform-settings.json, CSP está desactivado.
Las instrucciones para la instalación y actualización se encuentran en la sección Instalación y actualización del centro de ayuda.
Nueva instalación de ThingWorx Platform con filtro CSP
Instalación manual
Instalador de ThingWorx Foundation
Actualización de ThingWorx a versiones que soportan CSP
Para la actualización de la versión de mantenimiento, consulte Actualización de la versión de mantenimiento.
Para la actualización manual de Windows, consulte lo siguiente:
Para la actualización manual de Linux, consulte lo siguiente:
Para actualizar el instalador de ThingWorx Foundation, consulte Actualización del instalador.
Activación o desactivación de CSP en un entorno existente
Para activar o desactivar CSP en un entorno existente, realice los siguientes pasos:
1. Defina el señalizador EnableContentSecurityPolicyFilter en True en la sección BasicSettings de PlatformSettingsConfig de platform-settings.json.
2. Reinicie el servidor Tomcat.
* 
Al iniciar ThingWorx, las configuraciones de ClickjackFilter web.xml se migran automáticamente a CSP si se cumplen todas las siguientes condiciones:
El filtro CSP está activado.
El filtro de secuestro de pulsaciones se ha configurado en web.xml.
Los administradores de ThingWorx aún no han configurado el filtro CSP de ThingWorx Composer.
Migración de la configuración de ClickjackFilter a CSP
Cuando se inicia ThingWorx, las configuraciones de ClickjackFilter se migran automáticamente a CSP si se cumplen las siguientes condiciones:
El filtro de directivas de seguridad del contenido está activado, lo que significa que EnableContentSecurityPolicyFilter se ha definido en true.
El filtro de secuestro de pulsaciones se ha configurado mediante web.xml.
El filtro CSP aún no se ha configurado desde la interfaz de usuario.
El filtro de secuestro de pulsaciones se puede configurar en uno de los tres modos siguientes: SAMEORIGIN, DENY y ALLOWLIST.
Si el filtro de secuestro de pulsaciones se ha configurado para SAMEORIGIN, no se migra nada, ya que esa es la configuración por defecto de CSP para frame-ancestors.
<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>
Si ClickjackFilter se ha configurado para DENY, la cabecera frame-ancestors de CSP se configurará en 'none'.
<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>
Si ClickjackFilter se ha configurado en ALLOWLIST, las cabeceras frame-ancestors y frame-src de CSP se configurarán para permitir los dominios configurados.
<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>
¿Fue esto útil?