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.comChaî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:
| Valeur | Statut | Description |
|---|---|---|
'none' | ✅ Bon | Bloque tous les chargements de médias. |
'self' | ✅ Bon | Médias de l'origine de la page uniquement. |
media.example.com | ✅ Bon | Un host de médias ou de streaming nommé. |
https: | ✅ Bon | N'importe quelle origine HTTPS. Large; préférez des hosts nommés. |
blob: | ✅ Bon | Médias générés côté client (Media Source Extensions, flux enregistrés). |
mediastream: | ✅ Bon | Flux 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.comLimitez 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
- Directives de la Content Security Policy
- default-src
- frame-src
- Valeurs scheme source
- Suite CSP CentralCSP