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.

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"

AlternativStandardvärde

Beskrivning

content_security_policy.directive.default_src”inget”

Fungerar som reserv för de andra hämtningsdirektiven.

Giltiga värden för default_src.

content_security_policy.directive.connect_src*

Begränsar URL:erna som kan laddas med hjälp av skriptgränssnitt.

Giltiga värden för connect_src.

content_security_policy.directive.script_src*

Anger giltiga källor för JavaScript.

Giltiga värden för script_src.

content_security_policy.directive.style_src* ”unsafe-inline”

Anger giltiga källor för formatmallar.

Giltiga värden för style_src.

content_security_policy.directive.img_src* data:

Anger giltiga källor för bilder och sajtikoner.

Giltiga värden för img_src.

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 font_src.

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 frame_src.

content_security_policy.directive.object_srcdata:

Anger giltiga källor för elementen <object>, <embed> och <applet>.

Giltiga värden för object_src.

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 report_uri.

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.

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 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.

AlternativStandardvärde

Beskrivning

content_security_policy.enforce_enabledfalskt

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_enabledsantLä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.

  1. Ladda en testvisualisering med överträdelser som har Tableau Server-driftsättningen där du har konfigurerat CSP som värd.

  2. Ange CTRL+Shift+I för att öppna utvecklarverktygen i Chrome.

  3. Klicka på fliken Nätverk.

  4. 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.