Stratégie de sécurité du contenu

Tableau Server prend en charge la norme CSP (Content Security Policy, ou stratégie de sécurité du contenu). CSP est conçu comme une couche supplémentaire de sécurité pour les scripts inter-sites et autres attaques malveillantes basées sur le Web. CSP est implémenté comme un en-tête de réponse HTTP qui vous permet de spécifier les emplacements d’où les ressources externes, par exemple des scripts ou des images, peuvent être chargées en toute sécurité.

Consultez le site Web de Mozilla(Le lien s’ouvre dans une nouvelle fenêtre) pour plus d’informations sur CSP.

Configurer et activer CSP

Vous pouvez configurer et activer CSP à l’aide de la commande Options tsm configuration set. Si vous exécutez Tableau Server dans un déploiement distribué, exécutez ces commandes sur le nœud initial du groupement. La configuration sera appliquée à tout le groupement après l’exécution de tsm pending-changes apply.

Étape 1 : Définir les directives par défaut

Tableau Server inclut l’ensemble de directives par défaut dans la table ci-dessous.

Pour définir une directive, utilisez la syntaxe tsm suivante :

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

Par exemple, pour définir la directive connect_src, exécutez la commande suivante :

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

OptionValeur par défaut

Description

content_security_policy.directive.default_src‘none’

Fait office de commande de secours pour les autres directives de récupération.

Valeurs valides pour default_src(Le lien s’ouvre dans une nouvelle fenêtre).

content_security_policy.directive.connect_src*

Limite les URL qui peuvent être chargées à l’aide d’interfaces de script.

Valeurs valides pour connect_src(Le lien s’ouvre dans une nouvelle fenêtre).

content_security_policy.directive.script_src*

Spécifie les sources valides pour JavaScript.

Valeurs valides pour script_src(Le lien s’ouvre dans une nouvelle fenêtre).

content_security_policy.directive.style_src* ‘unsafe-inline’

Spécifie les sources valides pour les feuilles de style.

Valeurs valides pour style_src(Le lien s’ouvre dans une nouvelle fenêtre).

content_security_policy.directive.img_src* data :

Spécifie les sources valides pour les images et les icônes favorites.

Valeurs valides pour img_src(Le lien s’ouvre dans une nouvelle fenêtre).

content_security_policy.directive.font_src* data :

Spécifie les sources valides pour les polices chargées à l’aide de @font-face.

Valeurs valides pour font_src(Le lien s’ouvre dans une nouvelle fenêtre).

content_security_policy.directive.frame_src* data :

Spécifie les sources valides pour le chargement de contextes de navigation imbriqués à l’aide d’éléments tels que <frame> et <iframe>.

Valeurs valides pour frame_src(Le lien s’ouvre dans une nouvelle fenêtre).

content_security_policy.directive.object_srcdata :

Spécifie les sources valides pour les éléments <object>, <embed>, et <applet>.

Valeurs valides pour object_src(Le lien s’ouvre dans une nouvelle fenêtre).

content_security_policy.directive.report_uri/vizql/csp-report

Demande à l’utilisateur de signaler les tentatives d’infraction de la norme CSP. Ces rapports d’infraction consistent en des documents JSON envoyés par le biais d’une demande HTTP POST à l’URI spécifiée.

Valeurs valides pour report_uri(Le lien s’ouvre dans une nouvelle fenêtre).

Étape 2 : Ajouter des directives supplémentaires (facultatif)

Les directives par défaut incluses avec Tableau Server sont un sous-ensemble des directives prises en charge par CSP.

Pour une liste des directives CSP prises en charge, consultez https://developer.mozilla.org/fr-ca/docs/Web/HTTP/Headers/Content-Security-Policy(Le lien s’ouvre dans une nouvelle fenêtre).

Vous pouvez ajouter des directives à l’ensemble par défaut existant, en ajoutant la nouvelle directive dans l’espace de nom content_security_policy.directive. Vous devez inclure le paramètre --force-keys lorsque vous ajoutez de nouvelles directives. La syntaxe est la suivante :

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

Par exemple, pour ajouter la directive worker-src(Le lien s’ouvre dans une nouvelle fenêtre), exécutez la commande suivante :

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

Étape 3 : Spécifier des directives de rapport uniquement (facultatif)

Vous pouvez configurer CPS pour que certaines directives fassent l’objet de rapports et que d’autres soient appliquées. Lorsque vous définissez content_security_policy.enforce_enabled sur « true », toutes les directives sont appliquées (même si content_security_policy.report_only_enable est également défini sur sur « true »).

Pour spécifier des directives comme « rapport uniquement » et non pas appliquées, ajoutez les directives à l’espace de noms report_only_directive. Vous devez inclure le paramètre --force-keys lorsque vous ajoutez de nouvelles directives. La syntaxe est la suivante :

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

Par exemple, pour que la directive script_src fasse l’objet d’un rapport uniquement, exécutez la commande suivante :

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

Étape 4 : Activer CSP sur Tableau Server

Après avoir configuré les directives, activez CSP sur Tableau Server.

Les options suivantes sont utilisées pour activer le mode Application ou Rapport uniquement pour les directives que vous avez définies.

OptionValeur par défaut

Description

content_security_policy.enforce_enabledfalse

Ajoute un en-tête CSP à toutes les demandes afin que toute infraction soit appliquée par le navigateur.

content_security_policy.report_only_enabledtrueAjoute un en-tête CSP à toutes les demandes afin que toutes les infractions soit enregistrées dans nos fichiers journaux vizql-client, mais non appliquées par le navigateur.

Pour activer l’application des directives CSP que vous avez spécifiées, exécutez la commande suivante :

tsm configuration set -k content_security_policy.enforce_enabled -v true

Étape 5 : Exécuter tsm pending-changes apply

Une fois que vous avez fini de configurer CSP, exécutez tsm pending-changes apply.

Si les modifications en attente nécessitent un redémarrage du serveur, la commande pending-changes apply affichera une invite pour vous informer qu’un redémarrage va avoir lieu. Cette invite s’affiche même si le serveur est arrêté, mais dans ce cas, il n’y a pas de redémarrage. Vous pouvez supprimer l’invite à l’aide de l’option --ignore-prompt, mais cela ne modifiera pas le comportement de redémarrage. Si les modifications ne nécessitent pas de redémarrage, les modifications sont appliquées sans invite. Pour plus d’informations, consultez tsm pending-changes apply.

Afficher le rapport CSP

Pour afficher les infractions à CSP pour une visualisation donnée, chargez la visualisation dans un navigateur qui inclut des outils de développeur. Cet exemple utilise le navigateur Chrome.

  1. Chargez une visualisation de test comportant des infractions et hébergée sur le déploiement Tableau Server où vous avez configuré CSP.

  2. Entrez CTRL+Shift+I pour ouvrir les outils de développeur dans Chrome.

  3. Cliquez sur l’onglet Réseau.

  4. Dans le champ Filtre, entrez csp-report, puis cliquez sur Trouver tout.

    • S’il n’y a pas d’infractions, la recherche ne renvoie pas de rapports CSP.

    • S’il y a des infractions, cliquez sur l’onglet En-têtes dans le volet Résultats et faites défiler jusqu’en bas pour afficher Charge utile de la demande.

Merci de vos commentaires!Votre commentaire s été envoyé avec succès. Merci!