CentralCSP
PolitiquesContent-Security-PolicyDirectives

media-src

La directive CSP media-src contrôle la provenance des ressources audio, vidéo et track de la page.

Dernière mise à jour:

La directive media-src contrôle la provenance des médias sous une politique de sécurité du contenu (Content Security Policy, CSP). Elle régit le src des éléments <audio> et <video> ainsi que leurs enfants <source> et <track>, donc elle décide depuis quelles origines votre page peut diffuser des médias.

Une politique minimale sûre pour cette directive:

Content-Security-Policy: media-src 'self' https://media.example.com

Chaîne de repli

media-src se replie sur default-src. Si vous ne définissez pas media-src, les médias sont régis par ce que default-src autorise. Si ni l'une ni l'autre n'est présente, les médias se chargent depuis n'importe où.

Valeurs

media-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 tous les chargements de médias.
'self'✅ BonMédias de l'origine de la page uniquement.
media.example.com✅ BonUn host de médias ou de streaming nommé.
https:✅ BonN'importe quelle origine HTTPS. Large; préférez des hosts nommés.
blob:✅ BonMédias générés côté client (Media Source Extensions, flux enregistrés).
mediastream:✅ BonFlux de médias en direct. Niche, et pertinent pour media-src uniquement.
*❌ RisquéN'importe quel host peut recevoir des requêtes de médias, un canal dissimulé. Ne correspond jamais à data: ni blob:.

Les nonces et les hashes ne s'appliquent pas aux médias.

Exemples

Content-Security-Policy:
  default-src 'self';
  media-src 'self' https://media.example.com blob:

Cela autorise les médias depuis votre propre origine, un host de médias nommé et les URL blob:.

Usage courant

media-src a couramment besoin de blob: quand vous lisez des médias générés ou mis en tampon côté client, par exemple avec les Media Source Extensions, URL.createObjectURL ou de l'audio et de la vidéo enregistrés. Un lecteur de streaming qui construit son tampon en JavaScript échouera sans blob: dans media-src.

Si vous intégrez le lecteur vidéo d'un tiers dans une iframe, cela relève de frame-src, pas de media-src. media-src ne s'applique qu'aux éléments média rendus directement sur votre page.

Notes de sécurité

Les médias sont un type de ressource à faible risque: ils ne peuvent pas s'exécuter, et un fichier média bloqué dégrade la page sans casser sa logique. La directive limite la provenance des flux de médias, ce qui compte surtout pour l'intégrité du contenu et pour éviter de servir des médias depuis des hosts non fiables. Vérifiez la politique globale avec l'évaluateur CSP.

Contournements et risques connus

Comme les médias ne peuvent pas exécuter de code, media-src est un contrôle de contenu plutôt qu'un contrôle d'injection. Le risque principal est une liste de sources trop large comme media-src *, qui laisse un élément média injecté envoyer des requêtes vers n'importe quel host comme canal dissimulé. Un joker * ne correspond pas à blob:, donc listez blob: explicitement quand vous avez besoin de médias générés côté client.

Recommandation

Content-Security-Policy: media-src 'self' https://media.example.com

Limitez media-src à votre propre origine plus le host de médias depuis lequel vous diffusez. N'ajoutez blob: que quand votre lecteur construit les médias côté client, par exemple via les Media Source Extensions ou URL.createObjectURL. Évitez *, qui laisse un élément média injecté envoyer des requêtes vers n'importe quel host.

Reporting

Quand un chargement de média est bloqué, le navigateur envoie un report csp-violation avec media-src comme effectiveDirective, incluant l'URL bloquée. CentralCSP collecte et agrège ces reports, pour que vous voyiez chaque host de médias que vos pages utilisent réellement avant de resserrer la directive.

Prise en charge par les navigateurs

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

Voir aussi

Sources

On this page