Säkerhetspolicy för innehåll
Tableau-servern stöder standarden Content Security Policy (CSP). CSP är avsett att vara ytterligare ett säkerhetslager mot s.k. ”cross-site scripting” och andra skadliga webbaserade angrepp. CSP implementeras som ett HTTP-svarshuvud som gör att du kan ange varifrån externa resurser såsom skript och bilder kan laddas på ett säkert sätt.
Mer information om CSP finns på Mozillas webbplats(Länken öppnas i ett nytt fönster).
Konfigurera och aktivera CSP
CSP konfigureras och aktiveras med hjälp av kommandot Alternativ för tsm configuration set. Om du kör Tableau Server i en distribuerad driftsättning så kör du de här kommandona på den initiala noden i klustret. Konfigurationen tillämpas över hela klustret efter att du kört tsm pending-changes apply.
Steg 1: Ange standarddirektiv
Tableau Server har uppsättningen standarddirektiv som visas i tabellen nedan.
Använd följande tsm-syntax för att ställa in ett direktiv:
tsm configuration set -k content_security_policy.directive.<directive_name> -v "<value>"
Om du till exempel vill ställa in direktivet connect_src
kör du följande kommando:
tsm configuration set -k content_security_policy.directive.connect_src -v "* unsafe-inline"
Alternativ | Standardvärde | Beskrivning |
---|---|---|
content_security_policy.directive.default_src | ”inget” | Fungerar som reserv för de andra hämtningsdirektiven. Giltiga värden för |
content_security_policy.directive.connect_src | * | Begränsar URL:erna som kan laddas med hjälp av skriptgränssnitt. Giltiga värden för |
content_security_policy.directive.script_src | * | Anger giltiga källor för JavaScript. Giltiga värden för |
content_security_policy.directive.style_src | * ”unsafe-inline” | Anger giltiga källor för formatmallar. Giltiga värden för |
content_security_policy.directive.img_src | * data: | Anger giltiga källor för bilder och sajtikoner. Giltiga värden för |
content_security_policy.directive.font_src | * data: | Anger giltiga källor för teckensnitt som laddas med hjälp av @font-face. Giltiga värden för |
content_security_policy.directive.frame_src | * data: | Anger giltiga källor för kapslade webbläsarkontexter som laddas med hjälp av element som <frame> och <iframe>. Giltiga värden för |
content_security_policy.directive.object_src | data: | Anger giltiga källor för elementen <object>, <embed> och <applet>. Giltiga värden för |
content_security_policy.directive.report_uri | /vizql/csp-report | Instruerar användaragenten att rapportera försök till att bryta mot CSP. De här överträdelserapporterna består av JSON-dokument som skickas via en HTTP POST-begäran till den angivna URI:n. Giltiga värden för |
Steg 2: Lägg till ytterligare direktiv (valfritt)
Standarddirektiven som ingår i Tableau Server är en delmängd av direktiv som stöds av CSP.
En fullständig lista över CSP-direktiv som stöds finns på https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy(Länken öppnas i ett nytt fönster).
Du kan lägga till direktiv i den befintliga standarduppsättningen genom att lägga till det nya direktivet i namnrymden content_security_policy.directive. Du måste inkludera parametern --force-keys
när du lägger till nya direktiv. Syntax är enligt följande:
tsm configuration set -k content_security_policy.directive.<new_directive_name> -v "<value>" --force-keys
Om du till exempel vill lägga till direktivet worker-src
(Länken öppnas i ett nytt fönster) kör du följande kommando:
tsm configuration set -k content_security_policy.directive.worker-src -v "none" --force-keys
Steg 3: Ange report-only-direktiv (valfritt)
Du kan konfigurera CPS:er för att rapportera vissa direktiv och för att genomdriva andra. När du ställer in content_security_policy.enforce_enabled på true genomdrivs alla direktiv (även om content_security_policy.report_only_enable också är inställt på true).
Om du vill ange direktiv som ”report-only” så att de inte genomdrivs lägger du till direktiven i namnrymden report_only_directive. Du måste inkludera parametern --force-keys
när du lägger till nya direktiv. Syntax är enligt följande:
tsm configuration set -k content_security_policy.report_only_directive.<directive_name> -v "<value>" --force-keys
För att till exempel endast rapportera på direktivet script_src
kör du följande kommando:
tsm configuration set -k content_security_policy.report_only_directive.script_src -v " http://*.example.com" --force-keys
Steg 4: Aktivera CSP på Tableau Server
När du har konfigurerat direktiv aktiverar du CSP på Tableau Server.
Följande alternativ används för att aktivera genomdrivningsläge eller endast rapport-läge för de direktiv du har ställt in.
Alternativ | Standardvärde | Beskrivning |
---|---|---|
content_security_policy.enforce_enabled | falskt | Lägger till ett CSP-huvud till alla förfrågningar så att eventuella överträdelser genomdrivs av webbläsaren. |
content_security_policy.report_only_enabled | sant | Lägger till ett CSP-huvud till alla förfrågningar så att eventuella överträdelser registreras i våra vizQL-klientloggar, men genomdrivs inte av webbläsaren. |
Kör följande kommando för att aktivera genomdrivning av de CSP-direktiv som du har angett:
tsm configuration set -k content_security_policy.enforce_enabled -v true
Steg 5: Kör tsm pending-changes apply
När du har konfigurerat klart CSP kör du tsm pending-changes apply.
Om de väntande ändringarna kräver att servern startas om visar kommandot pending-changes apply
en kommandotolk så att du vet att en omstart kommer att ske. Kommandotolken visas även om servern stoppas, men i så fall sker ingen omstart. Du kan utelämna tolken med alternativet --ignore-prompt
, men det påverkar inte omstartsbeteendet. Om ändringarna inte kräver omstart används de utan någon kommandotolk. Du hittar mer information i tsm pending-changes apply.
Visa CSP-rapport
För att visa CSP-överträdelser för en viss visualisering laddar du visualiseringen i en webbläsare som innehåller utvecklarverktyg. I det här exemplet används webbläsaren Chrome.
Ladda en testvisualisering med överträdelser som har Tableau Server-driftsättningen där du har konfigurerat CSP som värd.
Ange
CTRL+Shift+I
för att öppna utvecklarverktygen i Chrome.Klicka på fliken Nätverk.
Ange
csp-report
i fältet Filter och klicka sedan på Hitta alla.Om det inte finns några överträdelser kommer sökningen inte att returnera några CSP-rapporter.
Om det finns överträdelser klickar du på fliken Rubriker i resultatrutan och bläddrar längst ner för att visa Begär nyttolast.