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"
Option | Standardwert | Beschreibung |
---|---|---|
content_security_policy.directive.default_src | ‘none’ | Dient als Fallback für die anderen Abrufanweisungen. Gültige Werte für |
content_security_policy.directive.connect_src | * | Beschränkt die URLs, die mithilfe von Skriptschnittstellen geladen werden können. Gültige Werte für |
content_security_policy.directive.script_src | * | Gibt gültige Quellen für JavaScript an. Gültige Werte für |
content_security_policy.directive.style_src | * ‘unsafe-inline’ | Gibt gültige Quellen für Stylesheets an. Gültige Werte für |
content_security_policy.directive.img_src | * data: | Gibt gültige Quellen für Bilder und Favicons an. Gültige Werte für |
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 |
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 |
content_security_policy.directive.object_src | data: | Gibt gültige Quelle für die Elemente <object>, <embed> und <applet> an. Gültige Werte für |
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 |
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.
Option | Standardwert | Beschreibung |
---|---|---|
content_security_policy.enforce_enabled | false | Fügt allen Anfragen eine CSP-Kopfzeile hinzu, sodass jegliche Verstöße vom Browser erzwungen werden. |
content_security_policy.report_only_enabled | true | Fü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.
Laden Sie eine Testvisualisierung mit Verstößen, die in der Tableau Server-Bereitstellung gehostet wird, in der Sie CSP konfiguriert haben.
Geben Sie
CTRL+Shift+I
ein, um die Entwicklertools in Chrome zu öffnen.Klicken Sie auf die Registerkarte Netzwerk.
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.