Inhaltssicherheitsrichtlinie

Tableau Server unterstützt den Inhaltssicherheitsrichtlinien-Standard (Content Security Policy, CSP). CSP dient als zusätzliche Sicherheitsebene zum Schutz vor der Site-übergreifenden Skripterstellung und vor anderen webbasierten Angriffen mit bösartigen Absichten. CSP wird als HTTP-Antwortheader implementiert, mit dessen Hilfe Sie angeben können, wo externe Ressourcen wie Skripte und Bilder sicher geladen werden können.

Weitere Informationen zu CSP finden Sie auf der Mozilla-Website(Link wird in neuem Fenster geöffnet).

Konfigurieren und Aktivieren von CSP

CSP wird mithilfe des Befehls tsm configuration set-Optionen konfiguriert und aktiviert. Wenn Sie Tableau Server in einer verteilten Bereitstellung ausführen, führen Sie diese Befehle auf dem Ausgangsknoten im Cluster aus. Nach der Ausführung des Befehls tsm pending-changes apply wird die Konfiguration im gesamten Cluster angewendet.

Schritt 1: Festlegen von Standardanweisungen

Tableau Server beinhaltet den Satz mit Standardanweisungen in der Tabelle unten.

Verwenden Sie zum Festlegen einer Anweisung die folgende tsm-Syntax:

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

Führen Sie beispielsweise zum Festlegen der Anweisung connect_src den folgenden Befehl aus:

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

OptionStandardwert

Beschreibung

content_security_policy.directive.default_src‘none’

Dient als Fallback für die anderen Abrufanweisungen.

Gültige Werte für default_src(Link wird in neuem Fenster geöffnet).

content_security_policy.directive.connect_src*

Beschränkt die URLs, die mithilfe von Skriptschnittstellen geladen werden können.

Gültige Werte für connect_src(Link wird in neuem Fenster geöffnet).

content_security_policy.directive.script_src*

Gibt gültige Quellen für JavaScript an.

Gültige Werte für script_src(Link wird in neuem Fenster geöffnet).

content_security_policy.directive.style_src* ‘unsafe-inline’

Gibt gültige Quellen für Stylesheets an.

Gültige Werte für style_src(Link wird in neuem Fenster geöffnet).

content_security_policy.directive.img_src* data:

Gibt gültige Quellen für Bilder und Favicons an.

Gültige Werte für img_src(Link wird in neuem Fenster geöffnet).

content_security_policy.directive.font_src* data:

Gibt gültige Quellen für Schriften an, die mit @font-face geladen werden.

Gültige Werte für font_src(Link wird in neuem Fenster geöffnet).

content_security_policy.directive.frame_src* data:

Gibt gültige Quellen für verschachtelte Browsing-Kontexte an, die mithilfe von Elementen wie <frame> und <iframe> geladen werden.

Gültige Werte für frame_src(Link wird in neuem Fenster geöffnet).

content_security_policy.directive.object_srcdata:

Gibt gültige Quelle für die Elemente <object>, <embed> und <applet> an.

Gültige Werte für object_src(Link wird in neuem Fenster geöffnet).

content_security_policy.directive.report_uri/vizql/csp-report

Weist den Benutzer-Agent an, CSP-Verletzungsversuche zu melden. Diese Verletzungsberichte bestehen aus JSON-Dokumenten, die über eine HTTP POST-Anfrage an die angegebene URI gesendet werden.

Gültige Werte für report_uri(Link wird in neuem Fenster geöffnet).

Schritt 2: Hinzufügen zusätzlicher Richtlinien (optional)

Bei den in Tableau Server enthaltenen Standardrichtlinien handelt es sich um eine Teilmenge von Richtlinien, die von CSP unterstützt werden.

Eine vollständige Liste der unterstützten CSP-Richtlinien finden Sie unter https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy(Link wird in neuem Fenster geöffnet).

Sie können dem vorhandenen Standardsatz Richtlinien hinzufügen, indem Sie die neue Richtlinie in den Namespace "content_security_policy.directive" einfügen. Beim Hinzufügen neuer Richtlinien müssen Sie den Parameter --force-keys einbeziehen. Die Syntax ist wie folgt:

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

Führen Sie beispielsweise zum Hinzufügen der Anweisung worker-src(Link wird in neuem Fenster geöffnet) den folgenden Befehl aus:

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

Schritt 3: Angeben von Anweisungen vom Typ "Nur Bericht" (optional)

Sie können CPS konfigurieren, dass einige Anweisungen in die Berichterstattung einbezogen und andere erzwungen werden. Wenn Sie die Einstellung "content_security_policy.enforce_enabled" auf "true" festlegen, werden alle Anweisungen erzwungen (selbst wenn "content_security_policy.report_only_enable" ebenfalls auf "true" festgelegt ist).

Wenn Sie die Anweisungen als "Nur Bericht" angeben und nicht erzwingen möchten, fügen Sie die Anweisungen dem Namespace "report_only_directive" hinzu. Beim Hinzufügen neuer Richtlinien müssen Sie den Parameter --force-keys einbeziehen. Die Syntax ist wie folgt:

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

Wenn Sie beispielsweise nur Berichte für die Anweisung script_src erstellen möchten, führen Sie den folgenden Befehl aus:

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

Schritt 1: Aktivieren von CSP für Tableau Server

Nachdem Sie Anweisungen konfiguriert haben, aktivieren Sie CSP für Tableau Server.

Die folgenden Optionen dienen der Aktivierung des Erzwingungs- oder Nur-Bericht-Modus für die von Ihnen festgelegten Anweisungen.

OptionStandardwert

Beschreibung

content_security_policy.enforce_enabledfalse

Fügt allen Anfragen eine CSP-Kopfzeile hinzu, sodass jegliche Verstöße vom Browser erzwungen werden.

content_security_policy.report_only_enabledtrueFügt allen Anfragen eine CSP-Kopfzeile hinzu, sodass jegliche Verstöße in unseren VizQL-Clientprotokollen aufgezeichnet, jedoch nicht vom Browser erzwungen werden.

Um die Erzwingung der von Ihnen angegebenen CSP-Anweisungen zu aktivieren, führen Sie den folgenden Befehl aus:

tsm configuration set -k content_security_policy.enforce_enabled -v true

Schritt 5: Ausführen von "tsm pending-changes apply"

Wenn Sie die CSP-Konfiguration abgeschlossen haben, führen Sie tsm pending-changes apply aus.

Wenn die ausstehenden Änderungen einen Neustart des Servers erfordern, zeigt der Befehl pending-changes apply eine Meldung an, um Sie darüber zu informieren, dass ein Neustart stattfinden wird. Diese Meldung wird auch angezeigt, wenn der Server angehalten ist. In diesem Fall erfolgt jedoch kein Neustart. Sie können diese Meldung mithilfe der Option --ignore-prompt unterdrücken, dies ändert jedoch nichts an dem Neustartverhalten. Wenn die Änderungen keinen Neustart erfordern, werden die Änderungen ohne Meldung angewendet. Weitere Informationen finden Sie unter tsm pending-changes apply.

Anzeigen des CSP-Berichts

Wenn Sie CSP-Verstöße für eine bestimmte Visualisierung anzeigen möchten, laden Sie die Visualisierung in einem Browser, der Entwicklertools beinhaltet. In diesem Beispiel wird der Chrome-Browser verwendet.

  1. Laden Sie eine Testvisualisierung mit Verstößen, die in der Tableau Server-Bereitstellung gehostet wird, in der Sie CSP konfiguriert haben.

  2. Geben Sie CTRL+Shift+I ein, um die Entwicklertools in Chrome zu öffnen.

  3. Klicken Sie auf die Registerkarte Netzwerk.

  4. Geben Sie im Feld Filter den Eintrag csp-report ein, und klicken Sie dann auf Alle suchen.

    • Wenn keine Verstöße vorliegen, gibt die Suche keine CSP-Berichte zurück.

    • Liegen Verstöße vor, klicken Sie im Ergebnisbereich auf die Registerkarte "Kopfzeilen", und führen Sie einen Bildlauf nach unten durch, um die Nutzlast der Anforderung anzuzeigen.

Vielen Dank für Ihr Feedback!Ihr Feedback wurde erfolgreich übermittelt. Vielen Dank.