Fichier manifeste – Content Security Policy

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

Les "pages d'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 du bac à sable s'applique à toutes les pages spécifiées en tant que pages de bac à sable dans le fichier manifeste.

Règle par défaut

Si la règle 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 stratégies 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 objets locaux à partir de ses propres ressources empaquetées. WebAssembly sera désactivé, et l'extension n'exécutera pas de code JavaScript intégré et ne pourra pas évaluer les chaînes en tant que code exécutable. Si une page de bac à sable est ajoutée, elle disposera d'autorisations plus souples pour évaluer les scripts en dehors de l'extension.

Règles minimales et personnalisées relatives à la sécurité du contenu

Les développeurs peuvent ajouter ou supprimer des règles pour leur extension, ou utiliser le règlement Content Security minimal requis pour répondre aux besoins de leur projet.

Règlement concernant les pages d'extension

Chrome applique une stratégie minimale de sécurité du contenu 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 script aux directives, par exemple 'unsafe-eval' à script-src. Si vous ajoutez une source non autorisée à la règle de votre extension, Chrome génère une erreur de ce type au moment de l'installation:

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

Règles relatives aux pages bac à sable

La règle par défaut pour les pages en bac à sable est beaucoup plus permissive que pour les pages d'extension, car celles-ci n'ont pas accès aux API d'extension, ni à un accès direct aux pages hors bac à sable. La stratégie Content Security Policy du bac à sable peut être personnalisée si nécessaire.