CentralCSP
PolitiquesContent-Security-PolicyDirectives

manifest-src

La directive CSP manifest-src contrôle la provenance du manifeste applicatif, le fichier JSON lié avec rel manifest.

Dernière mise à jour:

La directive manifest-src contrôle la provenance du manifeste d'application web sous une politique de sécurité du contenu (CSP). Le manifeste est le fichier JSON référencé par <link rel="manifest"> qui décrit une progressive web app : son nom, ses icônes, sa couleur de thème et son URL de démarrage.

Une politique minimale sûre pour cette directive :

Content-Security-Policy: manifest-src 'self'

Chaîne de repli

manifest-src retombe sur default-src. Si vous ne définissez pas manifest-src, le manifeste est régi par ce que default-src autorise. Si aucune des deux n'est présente, le manifeste peut se charger depuis n'importe où.

Valeurs

manifest-src prend une liste de sources séparées par des espaces, combinant sources mot-clé, sources d'hôte et sources de schéma :

ValeurStatutDescription
'none'✅ BonBloque tout chargement de manifeste.
'self'✅ BonLe manifeste se charge depuis l'origine de la page. La valeur habituelle.
cdn.example.com✅ BonL'origine CDN exacte depuis laquelle vous servez le manifeste.
https:✅ BonToute origine HTTPS. Large ; préférez 'self' ou l'hôte exact.
*❌ RisquéLaisse un lien de manifeste injecté pointer vers n'importe quel hôte.

Les nonces et les hashes ne s'appliquent pas.

Exemples

Content-Security-Policy:
  default-src 'self';
  manifest-src 'self'

Cela n'autorise le chargement du manifeste que depuis votre propre origine, le cas habituel puisque le manifeste est presque toujours livré avec le site.

Usage courant

La plupart des sites servent le manifeste depuis leur propre origine, donc manifest-src 'self' est la valeur courante, et beaucoup de sites le laissent simplement retomber sur default-src. Vous n'avez besoin de nommer un autre hôte que si vous servez le fichier manifeste depuis un CDN sur une origine différente. Notez que les requêtes de manifeste sont soumises aux règles CORS propres au manifeste en plus de CSP, donc un manifeste cross-origin doit être autorisé des deux côtés.

Notes de sécurité

Le manifeste est une ressource déclarative à faible risque : il ne peut pas exécuter de code, et un manifeste bloqué dégrade l'expérience d'installation et de thème plutôt que de casser la page. manifest-src est avant tout un contrôle d'intégrité, qui maintient le manifeste épinglé sur un hôte de confiance afin qu'un <link rel="manifest"> injecté ne puisse pas substituer une description d'application contrôlée par un attaquant.

Contournements et risques connus

Le risque principal est une liste de sources trop large, qui laisserait un lien de manifeste injecté pointer vers un hôte non fiable. Garder manifest-src à 'self', ou sur le CDN précis que vous utilisez, élimine ce risque. Il n'y a pas de risque d'exécution à contourner ici, donc cette directive est simple.

Recommandation

Content-Security-Policy: manifest-src 'self'

Le manifeste est presque toujours livré avec le site, donc 'self' couvre la plupart des déploiements. Nommez plutôt l'origine CDN exacte si vous le servez depuis un CDN ; il n'y a aucune raison d'autoriser plus large pour un seul fichier bien identifié.

Reporting

Quand un chargement de manifeste est bloqué, le navigateur envoie un report csp-violation avec manifest-src comme effectiveDirective, incluant l'URL bloquée. CentralCSP collecte et agrège ces reports, donc un lien de manifeste mal configuré ou injecté apparaît dès qu'il survient.

Prise en charge par les navigateurs

manifest-src a été ajoutée dans CSP niveau 3 et est prise en charge par les navigateurs qui implémentent les manifestes de progressive web app. Là où un navigateur ne la reconnaît pas, le manifeste retombe sur default-src.

Voir aussi

Sources

On this page