Fichier manifeste – Content Security Policy

Clé de fichier manifeste facultative contenant une règle relative à la sécurité du contenu de la plate-forme Web qui spécifie des restrictions sur les scripts, les styles et d'autres ressources qu'une extension peut utiliser. Dans cette clé de fichier manifeste, des règles facultatives distinctes peuvent être définies pour les pages d'extension et les pages d'extension en bac à sable.

La règle "Pages de l'extension" s'applique aux contextes de page et de nœud de calcul dans l'extension. Cela inclut le pop-up de l'extension, le nœud de calcul en arrière-plan et les onglets contenant des pages HTML ou des iFrames ouverts par l'extension. La règle de bac à sable s'applique à toutes les pages spécifiées comme page de bac à sable dans le fichier manifeste.

Règle par défaut

Si la stratégie Content Security Policy n'est pas définie par l'utilisateur dans le fichier manifeste, les propriétés par défaut sont utilisées à la fois pour les pages d'extension et pour les pages d'extension en bac à sable.

Ces valeurs par défaut équivaut à spécifier les règles suivantes dans votre fichier manifeste:

{
  // ...
  "content_security_policy": {
    "extension_pages": "script-src 'self'; object-src 'self';",
    "sandbox": "sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';"
  }
  // ...
}

Dans ce cas, l'extension ne charge que les scripts et les objets locaux à partir de ses propres ressources empaquetées. WebAssembly sera désactivé, et l'extension ne pourra pas exécuter de code JavaScript intégré ni évaluer les chaînes en tant que code exécutable. Si vous ajoutez une page de bac à sable, elle disposera d'autorisations plus souples pour évaluer des scripts externes à l'extension.

Règles de sécurité du contenu minimales et personnalisées

Les développeurs peuvent ajouter ou supprimer des règles pour leur extension, ou utiliser la stratégie Content Security minimale requise pour répondre aux besoins de leur projet.

Règles relatives aux pages des extensions

Chrome applique une règle de sécurité du contenu minimale pour les pages d'extension. Cela revient à spécifier la règle suivante dans votre fichier manifeste:

{
  // ...
  "content_security_policy": {
    "extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self';"
  }
  // ...
}

La règle extension_pages ne peut pas être assouplie au-delà de cette valeur minimale. En d'autres termes, vous ne pouvez pas ajouter d'autres sources de scripts aux directives, comme l'ajout de 'unsafe-eval' à script-src. Si vous ajoutez une source non autorisée à la règle de votre extension, Chrome génère une erreur semblable à celle-ci au moment de l'installation:

'content_security_policy.extension_pages': Insecure CSP value "'unsafe-eval'" in directive 'script-src'.

Règles relatives aux pages de bac à sable

La règle par défaut pour les pages en bac à sable est beaucoup plus permissive qu'avec les pages d'extension, car celles-ci n'ont pas accès aux API d'extension ni à l'accès direct aux pages qui ne sont pas en bac à sable. Vous pouvez personnaliser la stratégie de sécurité du contenu du bac à sable selon vos besoins.