# object-src (/fr/docs/web-security/policies/content-security-policy/directives/object-src)



La directive `object-src` contrôle le contenu de plugin sous une politique de sécurité du contenu (Content Security Policy, CSP). Elle régit les éléments `<object>` et `<embed>`, qui peuvent charger des plugins, du Flash, des PDF et d'autres contenus intégrés qui s'exécutaient historiquement dans le contexte de la page.

Une politique minimale sûre pour cette directive:

```http
Content-Security-Policy: object-src 'none'
```

## Chaîne de repli [#chaîne-de-repli]

`object-src` se replie sur [`default-src`](/fr/docs/web-security/policies/content-security-policy/directives/default-src). Si vous ne définissez pas `object-src`, le contenu de plugin est régi par ce que `default-src` autorise. Si ni l'une ni l'autre n'est présente, il se charge depuis n'importe où.

## Valeurs [#valeurs]

`object-src` accepte une liste de sources séparées par des espaces combinant [sources mots-clés](/fr/docs/web-security/policies/content-security-policy/values/csp-keywords), [host sources](/fr/docs/web-security/policies/content-security-policy/values/csp-host-source) et [scheme sources](/fr/docs/web-security/policies/content-security-policy/values/csp-scheme-source):

| Valeur                | Statut   | Description                                                                                           |
| --------------------- | -------- | ----------------------------------------------------------------------------------------------------- |
| `'none'`              | ✅ Bon    | Bloque tout contenu de plugin. La valeur recommandée.                                                 |
| `'self'`              | ✅ Bon    | Contenu de plugin de même origine uniquement. Préférez `'none'` sauf si vous intégrez quelque chose.  |
| `plugins.example.com` | ✅ Bon    | Le host exact d'une ressource que vous devez intégrer.                                                |
| `https:`              | ❌ Risqué | Contenu de plugin depuis n'importe quel host HTTPS; rouvre ce point d'injection.                      |
| `data:`               | ❌ Risqué | Une URL `data:` contrôlée par un attaquant peut transporter du contenu de plugin actif qui s'exécute. |
| `blob:`               | ❌ Risqué | Laisse un script injecté construire du contenu de plugin côté client.                                 |
| `*`                   | ❌ Risqué | Aucune protection pour ce point d'entrée. Ne correspond jamais à `data:` ni `blob:`.                  |

Les nonces et les hashes ne s'appliquent pas.

## Exemples [#exemples]

```http
Content-Security-Policy:
  default-src 'self';
  object-src 'none';
  base-uri 'none'
```

Ici, le contenu de plugin est bloqué entièrement, ce qui est le réglage recommandé pour presque tous les sites.

## Usage courant [#usage-courant]

La valeur standard est `object-src 'none'`. Les intégrations de plugin sont un point d'injection: un attaquant capable de placer un élément `<object>` ou `<embed>` peut parfois charger du contenu actif qui s'exécute dans la page. Comme les navigateurs modernes ont abandonné la prise en charge des plugins et que `<embed>` et `<object>` sont rarement nécessaires, les bloquer complètement ne coûte rien sur la plupart des sites et ferme une vraie surface d'attaque. `object-src 'none'` fait partie des directives qu'une CSP stricte inclut toujours, aux côtés d'un nonce ou d'un hash sur [`script-src`](/fr/docs/web-security/policies/content-security-policy/directives/script-src) et de `base-uri 'none'`.

La directive `plugin-types`, aujourd'hui supprimée, servait à restreindre les types MIME de plugin. Elle a été retirée de CSP Level 3 et des navigateurs; utilisez `object-src 'none'` à la place. Vous pouvez confirmer qu'une politique stricte l'inclut avec l'[évaluateur CSP](/tools/csp-evaluator).

## Notes de sécurité [#notes-de-sécurité]

Contrairement aux images ou aux polices, le contenu de plugin peut transporter un comportement exécutable, donc `object-src` est un vrai contrôle d'injection, pas seulement un contrôle de contenu. Il y a rarement une raison de l'autoriser. Si vous devez intégrer une ressource de plugin précise, limitez `object-src` au host exact plutôt que de l'assouplir largement.

## Contournements et risques connus [#contournements-et-risques-connus]

Laisser `object-src` non définie (en s'appuyant sur un `default-src` permissif) laisse le point d'entrée plugin ouvert, ce qui explique pourquoi les recommandations de CSP stricte nomment `object-src 'none'` explicitement. Toute valeur plus large que les hosts précis que vous intégrez réellement rouvre ce point d'entrée. Un joker `object-src *` revient à n'avoir aucune protection pour ce type de ressource.

## Recommandation [#recommandation]

```http
Content-Security-Policy: object-src 'none'
```

Bloquez entièrement le contenu de plugin. `object-src 'none'` fait partie de la politique stricte recommandée par la [cheat sheet CSP d'OWASP](https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html) et les [recommandations de CSP stricte de web.dev](https://web.dev/articles/strict-csp). Les sites modernes n'ont presque jamais besoin de `<object>` ou `<embed>`, donc cela ferme un point d'injection sans aucun coût.

## Reporting [#reporting]

Quand du contenu de plugin est bloqué, le navigateur envoie un [report csp-violation](/fr/docs/web-security/reporting-api/reports/csp-violation) avec `object-src` comme `effectiveDirective`, incluant l'URL bloquée. CentralCSP collecte et agrège ces reports, donc une violation `object-src` inattendue remonte immédiatement, ce qui signifie en général du balisage injecté.

## Prise en charge par les navigateurs [#prise-en-charge-par-les-navigateurs]

`object-src` fait partie de CSP Level 1 et est prise en charge par tous les navigateurs qui implémentent CSP. Elle est stable et largement disponible.

## FAQ [#faq]

### Pourquoi mettre object-src à none ? [#pourquoi-mettre-object-src-à-none-]

`<object>` et `<embed>` sont un point d'injection: un attaquant qui en place un
peut parfois charger du contenu actif qui s'exécute dans la page. Les navigateurs
modernes ont abandonné la prise en charge des plugins, donc `object-src 'none'`
ferme cette surface sans aucun coût et fait partie des directives que toute CSP
stricte inclut.

### Que contrôle object-src ? [#que-contrôle-object-src-]

`object-src` régit le contenu de plugin chargé via les éléments `<object>` et
`<embed>`, historiquement Flash, les PDF et d'autres contenus embarqués qui
s'exécutaient dans le contexte de la page. Elle n'accepte ni nonces ni hashes. Si
vous ne la définissez pas, le contenu de plugin se replie sur `default-src`.

## Voir aussi [#voir-aussi]

* [Directives de la Content Security Policy](/fr/docs/web-security/policies/content-security-policy/introduction/csp-directives)
* [default-src](/fr/docs/web-security/policies/content-security-policy/directives/default-src)
* [script-src](/fr/docs/web-security/policies/content-security-policy/directives/script-src)
* [base-uri](/fr/docs/web-security/policies/content-security-policy/directives/base-uri)
* [Valeurs mots-clés CSP](/fr/docs/web-security/policies/content-security-policy/values/csp-keywords)
* [Suite CSP CentralCSP](/platform/csp-builder)

## Sources [#sources]

* [MDN, CSP object-src](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Security-Policy/object-src)
* [W3C, Content Security Policy Level 3](https://www.w3.org/TR/CSP3/)
* [W3C CSP editor's draft](https://w3c.github.io/webappsec-csp/)
* [OWASP, Content Security Policy cheat sheet](https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html)
* [web.dev, Mitigate XSS with a strict CSP](https://web.dev/articles/strict-csp)
