Criteri di sicurezza del contenuto
Tableau Server supporta lo standard CSP (Content Security Policy). CSP è inteso come ulteriore livello di sicurezza contro lo scripting tra i siti e altri attacchi dannosi basati sul Web. Il CSP viene implementato come intestazione di risposta HTTP che consente di specificare dove le risorse esterne, ad esempio script e immagini, possono essere caricate senza problemi.
Per ulteriori informazioni sul CSP, vedi Sito Web di Mozilla(Il collegamento viene aperto in una nuova finestra).
Configurare e abilitare il CSP
Il CSP è configurato e abilitato utilizzando il comando Opzioni di tsm configuration set. Se esegui Tableau Server in una distribuzione distribuita, esegui questi comandi nel nodo iniziale del cluster. La configurazione verrà applicata nel cluster dopo l’esecuzione di tsm pending-changes apply.
Passaggio 1: impostare direttive predefinite
Tableau Server include l’insieme di direttive predefinite nella tabella seguente.
Per impostare una direttiva, usa la sintassi tsm seguente:
tsm configuration set -k content_security_policy.directive.<directive_name> -v "<value>"
Ad esempio, per impostare la direttiva connect_src
, esegui il comando seguente:
tsm configuration set -k content_security_policy.directive.connect_src -v "* unsafe-inline"
Opzione | Valore di default | Descrizione |
---|---|---|
content_security_policy.directive.default_src | "nessuna" | Serve come fallback per le altre direttive di recupero. Valori validi per |
content_security_policy.directive.connect_src | * | Limita gli URL che possono essere caricati utilizzando le interfacce script. Valori validi per |
content_security_policy.directive.script_src | * | Specifica le origini valide per JavaScript. Valori validi per |
content_security_policy.directive.style_src | * "inline non sicuro" | Specifica le origini valide per i fogli di stile. Valori validi per |
content_security_policy.directive.img_src | * dati: | Specifica le origini valide di immagini e favicon. Valori validi per |
content_security_policy.directive.font_src | * dati: | Specifica le origini valide per i tipi di carattere caricati con @font-face. Valori validi per |
content_security_policy.directive.frame_src | * dati: | Specifica le origini valide per il caricamento di contesti di navigazione nidificati utilizzando elementi come <frame> e <iframe>. Valori validi per |
content_security_policy.directive.object_src | dati: | Specifica le origini valide per gli elementi <object>, <embed>, and <applet>. Valori validi per |
content_security_policy.directive.report_uri | /vizql/csp-report | Indica l’agente utente di segnalare i tentativi di violazione del CSP. Queste segnalazioni di violazione consistono in documenti JSON inviati tramite una richiesta HTTP POST all’URI specificato. Valori validi per |
Passaggio 2: aggiungere ulteriori direttive (facoltativo)
Le direttive predefinite incluse in Tableau Server sono un sottoinsieme di direttive supportate dal CSP.
Per un elenco completo delle direttive del CSP supportate, visita https://developer.mozilla.org/en-US/docs/Web/HTTP/headers/Content-Security-Policy(Il collegamento viene aperto in una nuova finestra).
Puoi aggiungere direttive all’insieme predefinito esistente utilizzando l’aggiunta della nuova direttiva nello spazio dei nomi content_security_policy.directive. È necessario includere il parametro --force-keys
quando si aggiungono nuove direttive. La sintassi è la seguente:
tsm configuration set -k content_security_policy.directive.<new_directive_name> -v "<value>" --force-keys
Ad esempio, per aggiungere la direttiva worker-src
(Il collegamento viene aperto in una nuova finestra), esegui il comando seguente:
tsm configuration set -k content_security_policy.directive.worker-src -v "none" --force-keys
Passaggio 3: specificare le direttive report-only (facoltativo)
Puoi configurare il CPS per segnalare alcune direttive e per definirne altre. Quando imposti content_security_policy.enforce_enabled su true, tutte le direttive vengono applicate (anche se content_security_policy.report_only_enable è impostato su true).
Per specificare le direttive come "report-only" e non applicate, aggiungi le direttive allo spazio dei nomi report_only_directive. È necessario includere il parametro --force-keys
quando si aggiungono nuove direttive. La sintassi è la seguente:
tsm configuration set -k content_security_policy.report_only_directive.<directive_name> -v "<value>" --force-keys
Ad esempio, per segnalare solo la direttiva script_src
, esegui il comando seguente:
tsm configuration set -k content_security_policy.report_only_directive.script_src -v " http://*.example.com" --force-keys
Passaggio 4: attivare il CSP su Tableau Server
Dopo aver configurato le direttive, abilita il CSP su Tableau Server.
Le opzioni seguenti vengono usate per abilitare la modalità di imposizione o solo per le direttive impostate.
Opzione | Valore di default | Descrizione |
---|---|---|
content_security_policy.enforce_enabled | falso | Aggiunge un’intestazione del CSP a tutte le richieste in modo che ogni violazione venga applicata dal browser. |
content_security_policy.report_only_enabled | true | Aggiunge un’intestazione del CSP a tutte le richieste in modo che ogni violazione venga registrata nei log vizql-client, ma non verrà applicata dal browser. |
Per attivare l’applicazione delle direttive del CSP specificate, esegui il comando seguente:
tsm configuration set -k content_security_policy.enforce_enabled -v true
Passaggio 5: eseguire l’applicazione le modifiche in sospeso tsm
Al termine della configurazione del CSP, esegui tsm pending-changes apply.
Se le modifiche in sospeso richiedono il riavvio del server, il comando pending-changes apply
visualizzerà un messaggio per segnalare che verrà eseguito un riavvio. Questo messaggio viene visualizzato anche se il server è stato arrestato, ma in questo caso il riavvio non viene eseguito. Puoi eliminare la richiesta usando l’opzione --ignore-prompt
, ma questo non modifica il comportamento del riavvio. Se le modifiche non richiedono un riavvio, vengono applicate senza visualizzare alcun messaggio. Per maggiori informazioni, consulta tsm pending-changes apply.
Visualizzare il report del CSP
Per visualizzare le violazioni del CSP per un determinato viz, carica il viz in un browser che include gli strumenti di sviluppo. Questo esempio usa il browser Chrome.
Carica un test viz con le violazioni ospitate nella distribuzione di Tableau Server in cui è stato configurato il CSP.
Immettei
CTRL+Shift+I
per aprire gli strumenti di sviluppo in Chrome.Fai clic sulla tabulazione Rete.
Nel campo Filtro, immetti
csp-report
e fai clic su Trova tutti.Se non sono presenti violazioni, la ricerca non restituirà alcun report di CSP.
Se sono presenti violazioni, fai clic sulla tabulazione Intestazioni nel riquadro dei risultati e scorri fino alla fine per visualizzare il Payload della richiesta.