# Tag Firewall

{% hint style="info" %}
TagFirewall est une extension payante qui peut être installée avec Commanders Act TMS ou exécutée en mode autonome. Veuillez contacter un consultant Commanders Act ou un account manager pour l’activer.
{% endhint %}

## Vue d’ensemble

TagFirewall bloque en temps réel les tags non autorisés (domaines). Cela peut par exemple aider à bloquer et à réduire le risque de piggybacking tags. TagFirewall est très dynamique et peut donc enrichir une configuration Content Security Policy (CSP) existante afin de résoudre des problèmes critiques liés aux tags en quelques minutes ou remplacer entièrement le besoin d’une Content Security Policy (CSP). TagFirewall propose deux modes :

### Mode Blacklist

Ce mode bloque la communication des tags avec une liste configurable de domaines. La communication avec tous les autres domaines reste autorisée.

### Mode Whitelist

Ce mode bloque la communication des tags avec tous les domaines, sauf une whitelist configurée.

## Configuration

### Commanders Act

TagFirewall peut être configuré à l’aide du template de tag "Commanders Act - TagFirewall" dans la tag library de Commanders Act TMS.

| Option                   | Description                                                                                                                                                                      |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Mode**                 | Permet de sélectionner le mode Blacklist ou Whitelist.                                                                                                                           |
| **Domaines blacklistés** | Domaines qui doivent être blacklistés. Encadrés par `"` et et séparés par`,` . (*Uniquement pour le mode Blacklist*)                                                             |
| **Domaines internes**    | Domaines de tags qui doivent être whitelisted. Encadrés par `"` et et séparés par`,` . (*Uniquement pour le mode Whitelist*)                                                     |
| **Domaines de tags**     | Domaines internes (domaine nécessaire au fonctionnement du site web) qui doivent être whitelisted. Encadrés par `"` et et séparés par`,` . (*Uniquement pour le mode Whitelist*) |
| **Vérifier SSL**         | Cette option permet de bloquer tous les `http` hits script (elle n’autorisera que les `https` hits script).                                                                      |

<figure><img src="https://3282103337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mk6XpTQ2LaRLcr2tA-d%2Fuploads%2Fgit-blob-79b46f01816d7481f9ef19b41fb3774ab7ee9022%2Fimage.png?alt=media" alt=""><figcaption><p>Exemple de configuration de TagFirewall.</p></figcaption></figure>

### Autonome

TagFirewall peut être configuré à l’aide d’un tag JavaScript personnalisé pour toutes les autres installations. Le tag dispose des options suivantes.

| Option                     | Description                                                                                                                                             |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **\<whitelist\_tags>**     | Tableau des domaines utilisés par les tags qui ne doivent pas être bloqués. (*Uniquement pour le mode Whitelist*)                                       |
| **\<whitelist\_internal>** | Tableau des domaines internes (domaine nécessaire au fonctionnement du site web) qui ne doivent pas être bloqués. (*Uniquement pour le mode Whitelist*) |
| **\<blacklist\_tags>**     | Tableau des domaines utilisés par les tags qui doivent être blacklistés. (*Uniquement pour le mode Blacklist*)                                          |
| **\<active\_flag>**        | Cette option active TagFirewall. Définir sur `true` pour activer TagFirewall.                                                                           |
| **\<check\_ssl>**          | Cette option permet de bloquer tous les `http` hits script (elle n’autorisera que les `https` hits script). Définir sur `true` pour l’activer.          |
| **\<script\_url>**         | URL du fichier JavaScript de la bibliothèque TagFirewall. Cette URL sera fournie par un consultant ou un account manager Commanders Act.                |

{% tabs %}
{% tab title="Mode Blacklist" %}

```markup
<script>
tC = tC || {};
tC.tagFirewall = tC.tagFirewall || {};

tC.tagFirewall.list = {
    "blacklist": {
        "tags": <blacklist_tags>
    }
};

tC.tagFirewall.checkSSL = <check_ssl>;
tC.tagFirewall.blocked  = <active_flag>;  
</script>
<script src="<script_url>"></script>
```

{% endtab %}

{% tab title="Mode Whitelist" %}

```markup
<script>
tC = tC || {};
tC.tagFirewall = tC.tagFirewall || {};

tC.tagFirewall.list = {
    "whitelist": {
        "internal": <whitelist_internal>,
        "tags": <whitelist_tags>
    }
};

tC.tagFirewall.checkSSL = <check_ssl>;
tC.tagFirewall.blocked  = <active_flag>; 
</script>
<script src="<script_url>"></script> 
```

{% endtab %}
{% endtabs %}

#### Exemples

{% tabs %}
{% tab title="Mode Blacklist" %}

```markup
<script>
tC = tC || {};
tC.tagFirewall = tC.tagFirewall || {};

tC.tagFirewall.list = {
    "blacklist": {
        "tags": ["bad-domain1.com", "bad-domain2.com"]
    }
};

tC.tagFirewall.checkSSL = true;
tC.tagFirewall.blocked  = true;  
</script>
<script src="<script_url>"></script>
```

{% endtab %}

{% tab title="Mode Whitelist" %}

```markup
<script>
tC = tC || {};
tC.tagFirewall = tC.tagFirewall || {};

tC.tagFirewall.list = {
    "whitelist": {
        "internal": ["cdn.yourdomain.com", "cdn.yourdomain2.com"],
        "tags": ["facebook.com","twitter.com"]
    }
};

tC.tagFirewall.checkSSL = true;
tC.tagFirewall.blocked  = true;
</script>
<script src="<script_url>"></script>
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}
Le tag doit être inclus dans le `<head>` de votre document. Il ne peut bloquer que les tags chargés **après** le tag TagFirewall et le fichier de bibliothèque JavaScript.
{% endhint %}
