CSP: frame-ancestors
====================

La directive HTTP `Content-Security-Policy` (CSP) **`frame-ancestors`** spécifie les parents pouvant intégrer une page en utilisant `<frame>`, `<iframe>`, `<object>`, `<embed>`, ou `<applet>`.

Définir cette directive à `'none'` est comparable à len-tête HTTP `X-Frame-Options``: deny` (aussi supporté sur les anciens navigateurs).

|  |  |
| --- | --- |
| CSP version | 2 |
| Directive type | Navigation directive |
| `default-src` fallback | No. Not setting this allows anything. |
| 
 This directive is not supported in the `<meta>`
 element.
  |

Syntaxe
-------

Une ou plusieurs sources peuvent être autorisées pour cette directive :
```

Content-Security-Policy: frame-ancestors <source>;
Content-Security-Policy: frame-ancestors <source> <source>;
```

### Sources

La <source> peut être une des suivantes :

**Note :** The `frame-ancestors` directive's syntax is similar to a source list of other directives (e.g. `default-src`), but doesn't allow `'unsafe-eval'` or `'unsafe-inline'` for example. It will also not fall back to a `default-src` setting. Only the sources listed below are allowed:

<host-source>

 Des hôtes Internet par leur nom de domaine ou adresse IP, aussi bien qu'un protocole et/ou un numéro de port. L'adresse du site peut inclure un caractère de remplacement optionnel (l'astérisque `'*'`), qui ne peut être utilisée que pour indiquer un sous-domaine ou que tous les ports existants sont des sources valides. Vous ne devez pas mettre de guillemets simples.
 Exemples :


* `http://*.example.com`: correspondra à toutes les tentatives d'accès pour tous les sous-domaines de example.com via le protocole `http:`.
* `mail.example.com:443`: correspondra à toutes les tentatives d'accès sur le port 443 de mail.example.com.
* `https://store.example.com`: correspondra à toutes les tentatives d'accès à store.example.com via le protocole `https:`.

**Attention :** Si aucun schéma d'URL n'est spécifié comme `host-source` et que l'`<iframe>` est chargée via une URL `https:`, la page chargeant l'iframe doit aussi être chargée en `https:`, selon la spécification du W3C sur les correspondances de valeurs de sources.

<scheme-source>

Un protocole tel que `http:` or `https:`. Les deux-points sont nécessaires et vous ne devez pas mettre de guillemets. Vous pouvez aussi spécifier des schémas de données bien que ce ne soit pas recommandé.

* `data:` Autorise les URI `data:` à être utilisées comme source de contenu. *Cette pratique manque de sécurité ; une personne malveillante peut aussi injecter des URI data: arbitraires. Utilisez cette valeur avec parcimonie et certainement pas pour des scripts.*
* `mediastream:` permet aux URI `mediastream:` (en-US) d'être utilisées comme source de contenu.
* `blob:` permet aux URI `blob:` d'être utilisées comme source de contenu.
* `filesystem:` Allows URI `filesystem:` (en-US) d'être utilisées comme source de contenu.

`'self'`

Cette valeur fait référence au domaine dont est originaire le document protégé, y compris le protocole et le numéro de port. Vous devez mettre cette valeur entre guillemets. Certains navigateurs excluent spécifiquement les valeurs `blob` et `filesystem` des directives de source. Les sites nécessitant une permission pour ces types de contenu peuvent les spécifier en utilisant l'attribut Data.

`'none'`

Aucune source n'est admise. Vous devez mettre cette valeur entre guillemets.

Exemples
--------


```bash
Content-Security-Policy: frame-ancestors 'none';

Content-Security-Policy: frame-ancestors 'self' https://www.example.org;
```

Spécifications
--------------

| Specification |
| --- |
| Content Security Policy Level 3 # directive-frame-ancestors |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `Content-Security-Policy`
* `X-Frame-Options`