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ón | Valor predeterminado | Descripción |
---|---|---|
content_security_policy.directive.default_src | ‘none’ | Sirve como reserva para las otras directivas de recuperación. Valores válidos para |
content_security_policy.directive.connect_src | * | Restringe las direcciones URL que pueden cargarse mediante interfaces de script. Valores válidos para |
content_security_policy.directive.script_src | * | Especifica fuentes válidas de JavaScript. Valores válidos para |
content_security_policy.directive.style_src | * ‘unsafe-inline’ | Especifica fuentes válidas de hojas de estilos. Valores válidos para |
content_security_policy.directive.img_src | * data: | Especifica fuentes válidas de imágenes e iconos de página. Valores válidos para |
content_security_policy.directive.font_src | * data: | Especifica fuentes válidas para tipos de letra cargados mediante @font-face. Valores válidos para |
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 |
content_security_policy.directive.object_src | data: | Especifica fuentes válidas para los elementos <object>, <embed> y <applet>. Valores válidos para |
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 |
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ón | Valor predeterminado | Descripción |
---|---|---|
content_security_policy.enforce_enabled | false | Añade un encabezado CSP a todas las solicitudes para que el navegador aplique cualquier infracción. |
content_security_policy.report_only_enabled | true | Añ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.
Cargue una visualización de prueba con infracciones hospedada en la implementación de Tableau Server donde haya configurado CSP.
Escriba
CTRL+Shift+I
para abrir las herramientas de desarrollo en Chrome.Haga clic en la pestaña Red.
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).