CentralCSP
PolitiquesContent-Security-PolicyDirectives

object-src

La directive CSP object-src contrôle le contenu de plugin object et embed. Définir object-src none est un pilier de toute CSP stricte.

Dernière mise à jour:

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:

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

Chaîne de repli

object-src se replie sur 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

object-src accepte une liste de sources séparées par des espaces combinant sources mots-clés, host sources et scheme sources:

ValeurStatutDescription
'none'✅ BonBloque tout contenu de plugin. La valeur recommandée.
'self'✅ BonContenu de plugin de même origine uniquement. Préférez 'none' sauf si vous intégrez quelque chose.
plugins.example.com✅ BonLe 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

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

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 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.

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

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

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 et les recommandations de CSP stricte de web.dev. Les sites modernes n'ont presque jamais besoin de <object> ou <embed>, donc cela ferme un point d'injection sans aucun coût.

Reporting

Quand du contenu de plugin est bloqué, le navigateur envoie un report 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

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

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 ?

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

Sources

On this page