Directiva de seguridad del contenido

Tableau Server admite el estándar CSP (directiva de seguridad del contenido). CSP está diseñado como una capa adicional de seguridad frente a los scripts de sitios y otros ataques web malintencionados. CSP se implementa como un encabezado de respuesta HTTP que le permite especificar desde dónde pueden cargarse de forma segura recursos externos, como scripts e imágenes.

Consulte el sitio web de Mozilla(El enlace se abre en una ventana nueva) para obtener más información sobre CSP.

Configurar y habilitar CSP

CSP se configura y habilita mediante el comando Opciones de tsm configuration set. Si ejecuta Tableau Server en una implementación distribuida, ejecute estos comandos en el nodo inicial del clúster. La configuración se aplicará en todo el clúster después de ejecutar tsm pending-changes apply.

Paso 1: establecer directivas predeterminadas

Tableau Server incluye el conjunto de directivas predeterminadas en la tabla siguiente.

Para establecer una directiva, use la siguiente sintaxis de tsm:

tsm configuration set -k content_security_policy.directive.<directive_name> -v "<value>"

Por ejemplo, para establecer la directiva connect_src, ejecute el comando siguiente:

tsm configuration set -k content_security_policy.directive.connect_src -v "* unsafe-inline"

OpciónValor predeterminado

Descripción

content_security_policy.directive.default_src‘none’

Sirve como reserva para las otras directivas de recuperación.

Valores válidos para default_src(El enlace se abre en una ventana nueva).

content_security_policy.directive.connect_src*

Restringe las direcciones URL que pueden cargarse mediante interfaces de script.

Valores válidos para connect_src(El enlace se abre en una ventana nueva).

content_security_policy.directive.script_src*

Especifica fuentes válidas de JavaScript.

Valores válidos para script_src(El enlace se abre en una ventana nueva).

content_security_policy.directive.style_src* ‘unsafe-inline’

Especifica fuentes válidas de hojas de estilos.

Valores válidos para style_src(El enlace se abre en una ventana nueva).

content_security_policy.directive.img_src* data:

Especifica fuentes válidas de imágenes e iconos de página.

Valores válidos para img_src(El enlace se abre en una ventana nueva).

content_security_policy.directive.font_src* data:

Especifica fuentes válidas para tipos de letra cargados mediante @font-face.

Valores válidos para font_src(El enlace se abre en una ventana nueva).

content_security_policy.directive.frame_src* data:

Especifica fuentes válidas para la carga anidada de contextos de navegación mediante elementos como <frame> e <iframe>.

Valores válidos para frame_src(El enlace se abre en una ventana nueva).

content_security_policy.directive.object_srcdata:

Especifica fuentes válidas para los elementos <object>, <embed> y <applet>.

Valores válidos para object_src(El enlace se abre en una ventana nueva).

content_security_policy.directive.report_uri/vizql/csp-report

Da instrucciones al agente de usuarios para informar de intentos de infracción de CSP. Estos informes de infracción son documentos JSON enviados mediante una solicitud HTTP POST a la URI especificada.

Valores válidos para report_uri(El enlace se abre en una ventana nueva).

Paso 2: añadir directivas adicionales (opcional)

Las directivas predeterminadas incluidas con Tableau Server son un subconjunto de directivas admitidas en CSP.

Para ver una lista de las directivas CSP admitidas, visite https://developer.mozilla.org/es-es/docs/Web/HTTP/Headers/Content-Security-Policy(El enlace se abre en una ventana nueva).

Puede añadir directivas al conjunto predeterminado existente mediante la adición de la nueva directiva en el espacio de nombres content_security_policy.directive. Debe incluir el parámetro --force-keys al añadir nuevas directivas. La sintaxis es la siguiente:

tsm configuration set -k content_security_policy.directive.<new_directive_name> -v "<value>" --force-keys

Por ejemplo, para añadir la directiva worker-src(El enlace se abre en una ventana nueva), ejecute el comando siguiente:

tsm configuration set -k content_security_policy.directive.worker-src -v "none" --force-keys

Paso 3: especificar directivas solo de informe (opcional)

Puede configurar CPS para que informe de algunas directivas y aplique otras. Si establece content_security_policy.enforce_enabled como “true”, se aplican todas las directivas (incluso si content_security_policy.report_only_enable también se establece como true).

Para especificar directivas como “report-only” (solo de informe) y no aplicarlas, añada las directivas al espacio de nombres report_only_directive. Debe incluir el parámetro --force-keys al añadir nuevas directivas. La sintaxis es la siguiente:

tsm configuration set -k content_security_policy.report_only_directive.<directive_name> -v "<value>" --force-keys

Por ejemplo, para informar únicamente de la directiva script_src , ejecute el comando siguiente:

tsm configuration set -k content_security_policy.report_only_directive.script_src -v " http://*.example.com" --force-keys

Paso 4: habilitar CSP en Tableau Server

Después de configurar directivas, habilite CSP en Tableau Server.

Las opciones siguientes se usan para habilitar las modalidades de aplicación o solo de informe de las directivas establecidas.

OpciónValor predeterminado

Descripción

content_security_policy.enforce_enabledfalse

Añade un encabezado CSP a todas las solicitudes para que el navegador aplique cualquier infracción.

content_security_policy.report_only_enabledtrueAñade un encabezado CSP a todas las solicitudes para registrar cualquier infracción en nuestros registros vizql-client, pero el navegador no la aplicará.

Para habilitar la aplicación de las directivas CSP especificadas, ejecute el comando siguiente:

tsm configuration set -k content_security_policy.enforce_enabled -v true

Paso 5: ejecutar tsm pending-changes apply

Cuando haya terminado de configurar CSP, ejecute tsm pending-changes apply.

Si los cambios pendientes requieren un reinicio del servidor, el comando pending-changes apply mostrará un mensaje para informarle de que se producirá un reinicio. Este mensaje aparece aunque el servidor esté detenido, pero en ese caso no se reiniciará. Puede suprimir el mensaje con la opción --ignore-prompt, pero no se modificará el comportamiento de reinicio. Si los cambios no requieren un reinicio, se aplicarán sin ningún mensaje. Para obtener más información, consulte tsm pending-changes apply.

Ver el informe de CSP

Para ver infracciones de CSP en una visualización determinada, cargue la visualización en un navegador que incluya herramientas de desarrollo. En este ejemplo, se utiliza el navegador Chrome.

  1. Cargue una visualización de prueba con infracciones hospedada en la implementación de Tableau Server donde haya configurado CSP.

  2. Escriba CTRL+Shift+I para abrir las herramientas de desarrollo en Chrome.

  3. Haga clic en la pestaña Red.

  4. En el campo Filtro, escriba csp-report y haga clic en Buscar todo.

    • Si no hay infracciones, la búsqueda no devolverá ningún informe de CSP.

    • Si hay infracciones, haga clic en la pestaña Encabezados del panel de resultados y desplácese hasta la parte inferior para ver Request Payload (Solicitar carga).

¡Gracias por sus comentarios!Sus comentarios se han enviado correctamente. ¡Gracias!