Content Security Policy (CSP)

Tableau Server biedt standaard ondersteuning voor Content Security Policy (CSP). CSP is bedoeld als extra beveiligingslaag tegen site-onafhankelijke scripts en andere schadelijke webaanvallen. CSP is geïmplementeerd als koptekst in een HTTP-response waarmee u kunt opgeven waar externe bronnen, zoals scripts en afbeeldingen, veilig kunnen worden geladen.

Zie de Mozilla-website(Link wordt in een nieuw venster geopend) voor meer informatie over CSP.

CSP configureren en inschakelen

CSP wordt geconfigureerd en ingeschakeld met opdracht tsm configuration set-opties. Als u Tableau Server in een gedistribueerde implementatie uitvoert, voert u deze opdrachten uit op het initiële knooppunt in het cluster. De configuratie wordt toegepast op het cluster nadat u tsm pending-changes apply hebt uitgevoerd.

Stap 1: Stel standaardrichtlijnen in

Tableau Server beschikt over de standaardrichtlijnen die staan vermeld in de onderstaande tabel.

Om een richtlijn in te stellen, gebruikt u de volgende tsm-syntaxis:

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

Om bijvoorbeeld de connect_src-richtlijn in te stellen, moet u de volgende opdracht uitvoeren:

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

OptieStandaardwaarde

Beschrijving

content_security_policy.directive.default_src‘none’

Fungeert als een optie om op terug te vallen voor de andere fetch-richtlijnen.

Geldige waarden voor default_src(Link wordt in een nieuw venster geopend).

content_security_policy.directive.connect_src*

Beperkt de URL's die kunnen worden geladen met scriptinterfaces.

Geldige waarden voor connect_src(Link wordt in een nieuw venster geopend).

content_security_policy.directive.script_src*

Geeft geldige bronnen voor JavaScript op.

Geldige waarden voor script_src(Link wordt in een nieuw venster geopend).

content_security_policy.directive.style_src* ‘unsafe-inline’

Geeft geldige bronnen voor stijlbladen op.

Geldige waarden voor style_src(Link wordt in een nieuw venster geopend).

content_security_policy.directive.img_src* data:

Geeft geldige bronnen van afbeeldingen en favicons op.

Geldige waarden voor img_src(Link wordt in een nieuw venster geopend).

content_security_policy.directive.font_src* data:

Geeft geldige bronnen op voor lettertypen die worden geladen met @font-face.

Geldige waarden voor font_src(Link wordt in een nieuw venster geopend).

content_security_policy.directive.frame_src* data:

Geeft geldige bronnen op voor geneste browsercontexten die worden geladen met elementen zoals <frame> en <iframe>.

Geldige waarden voor frame_src(Link wordt in een nieuw venster geopend).

content_security_policy.directive.object_srcdata:

Geeft geldige bronnen op voor de elementen <object>, <embed> en <applet>.

Geldige waarden voor object_src(Link wordt in een nieuw venster geopend).

content_security_policy.directive.report_uri/vizql/csp-report

Geeft de gebruikersagent de opdracht om pogingen om de CSP te schenden, te melden. Deze rapporten met vermeldingen van schendingspogingen bestaan uit JSON-documenten die via een HTTP POST-aanvraag naar de opgegeven URI worden verzonden.

Geldige waarden voor report_uri(Link wordt in een nieuw venster geopend).

Stap 2: Voeg extra richtlijnen toe (optioneel)

De standaardrichtlijnen die in Tableau Server zijn opgenomen, vormen een subset van de richtlijnen die door CSP worden ondersteund.

Ga voor een volledige lijst met ondersteunde CSP-richtlijnen naar https://developer.mozilla.org/en-USdocs/Web/HTTP/Headers/Content-Security-Policy(Link wordt in een nieuw venster geopend).

U kunt richtlijnen toevoegen aan de bestaande standaardset door de nieuwe richtlijn toe te voegen aan de naamruimte content_security_policy.directive. U moet de parameter --force-keys opnemen wanneer u nieuwe richtlijnen toevoegt. De syntaxis is als volgt:

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

Om bijvoorbeeld de richtlijn worker-src(Link wordt in een nieuw venster geopend) toe te voegen, moet u de volgende opdracht uitvoeren:

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

Stap 3: Geef op dat u alleen over richtlijnen wilt worden gerapporteerd (optioneel)

U kunt CPS configureren om bepaalde richtlijnen te rapporteren en andere af te dwingen. Wanneer u content_security_policy.enforce_enabled instelt op true, worden alle richtlijnen afgedwongen (zelfs als content_security_policy.report_only_enable ook op true is ingesteld).

Als u richtlijnen wilt specificeren als 'alleen rapporteren' en niet wilt afdwingen, voegt u de richtlijnen toe aan de naamruimte report_only_directive. U moet de parameter --force-keys opnemen wanneer u nieuwe richtlijnen toevoegt. De syntaxis is als volgt:

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

Om bijvoorbeeld de richtlijn script_src alleen te rapporteren, moet u de volgende opdracht uitvoeren:

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

Stap 4: Schakel CSP in op Tableau Server

Nadat u de richtlijnen hebt geconfigureerd, schakelt u CSP in op Tableau Server.

Met de volgende opties kunt u 'afdwingen' of 'alleen rapporteren' inschakelen voor de richtlijnen die u hebt ingesteld.

OptieStandaardwaarde

Beschrijving

content_security_policy.enforce_enabledfalse

Voegt een CSP-koptekst toe aan alle aanvragen, zodat eventuele schendingen door de browser worden afgedwongen.

content_security_policy.report_only_enabledtrueVoegt een CSP-koptekst toe aan alle aanvragen, zodat eventuele schendingen worden vastgelegd in onze vizql-clientlogboeken, maar niet worden afgedwongen door de browser.

Om het afdwingen van de door u opgegeven CSP-richtlijnen in te schakelen, voert u de volgende opdracht uit

tsm configuration set -k content_security_policy.enforce_enabled -v true

Stap 5: Voer 'tsm pending-changes apply' uit

Als u klaar bent met het configureren van CSP, voert u de volgende opdracht uit: tsm pending-changes apply.

Als voor de in behandeling zijnde wijzigingen de Server opnieuw moet worden opgestart, geeft de opdracht pending-changes apply een prompt weer om u te laten weten dat de server opnieuw wordt gestart. Deze prompt verschijnt ook als de server is gestopt, maar in dat geval vindt er geen herstart plaats. U kunt de prompt onderdrukken met de optie --ignore-prompt, maar dit verandert niets aan het herstartgedrag. Als opnieuw opstarten niet nodig is voor de wijzigingen, worden de wijzigingen zonder waarschuwing van een prompt toegepast. Zie tsm pending-changes apply voor meer informatie.

CSP-rapport weergeven

Om CSP-schendingen voor een bepaalde visualisatie te bekijken, laadt u de visualisatie in een browser die over ontwikkelaarstools beschikt. In dit voorbeeld wordt de Chrome-browser gebruikt.

  1. Laad een testvisualisatie met schendingen die wordt gehost op de Tableau Server-implementatie waarop u CSP hebt geconfigureerd.

  2. Druk op CTRL+Shift+I om de ontwikkelaarstools in Chrome te openen.

  3. Klik op het tabblad Netwerk.

  4. Voer in het veld Filter de opdracht csp-report in en klik vervolgens op Alles zoeken.

    • Als er geen schendingen zijn, zal de zoekopdracht geen CSP-rapporten retourneren.

    • Als er schendingen zijn, klikt u op het tabblad Kopteksten in het resultatenvenster en scrollt u naar beneden om Nettolading aanvragen weer te geven.

Bedankt voor uw feedback.De feedback is verzonden. Dank u wel.