Manifest – Content Security Policy

Ein optionaler Manifestschlüssel mit einer Content Security Policy für die Webplattform, in der Einschränkungen für die Skripts, Stile und anderen Ressourcen angegeben sind, die eine Erweiterung verwenden kann. Innerhalb dieses Manifestschlüssels können separate optionale Richtlinien sowohl für Erweiterungsseiten als auch für in einer Sandbox ausgeführte Erweiterungsseiten definiert werden.

Die Richtlinie „Erweiterungsseiten“ gilt für Seiten- und Worker-Kontexte in der Erweiterung. Dazu gehören das Pop-up-Fenster der Erweiterung, der Hintergrund-Worker und die Tabs mit HTML-Seiten oder iFrames, die von der Erweiterung geöffnet wurden. Die Sandbox-Richtlinie gilt für alle Seiten, die im Manifest als Sandbox-Seite angegeben sind.

Standardrichtlinie

Wenn der Nutzer die Content Security Policy nicht im Manifest definiert, werden die Standardeigenschaften sowohl für Erweiterungsseiten als auch für in einer Sandbox ausgeführte Erweiterungsseiten verwendet.

Diese Standardeinstellungen entsprechen der Angabe der folgenden Richtlinien in Ihrem Manifest:

{
  // ...
  "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';"
  }
  // ...
}

In diesem Fall lädt die Erweiterung nur lokale Skripts und Objekte aus ihren eigenen gepackten Ressourcen. WebAssembly wird deaktiviert und die Erweiterung führt kein Inline-JavaScript aus und kann Strings nicht als ausführbaren Code bewerten. Wenn eine Sandbox-Seite hinzugefügt wird, sind die Berechtigungen für die Bewertung von Skripts außerhalb der Erweiterung gelockert.

Minimale und benutzerdefinierte Content Security Policy-Richtlinien

Entwickler können Regeln für ihre Erweiterung hinzufügen oder entfernen oder die erforderliche Mindestsicherheitsrichtlinie für Inhalte verwenden, um den Anforderungen ihres Projekts gerecht zu werden.

Richtlinie zu Erweiterungsseiten

Chrome erzwingt eine Mindestinhaltssicherheitsrichtlinie für Erweiterungsseiten. Dies entspricht der Angabe der folgenden Richtlinie in Ihrem Manifest:

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

Die Richtlinie „extension_pages“ kann nicht über diesen Mindestwert hinaus gelockert werden. Das heißt, du kannst keine anderen Skriptquellen zu Anweisungen hinzufügen, also beispielsweise nicht 'unsafe-eval' zu script-src hinzufügen. Wenn Sie der Richtlinie Ihrer Erweiterung eine unzulässige Quelle hinzufügen, gibt Chrome bei der Installation einen Fehler wie diesen aus:

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

Richtlinie für Sandbox-Seiten

Die Standardrichtlinie für in einer Sandbox ausgeführte Seiten ist wesentlich weniger streng als bei Erweiterungsseiten, da die Sandbox-Seite keinen Zugriff auf Erweiterungs-APIs und keinen direkten Zugriff auf Seiten ohne Sandbox hat. Die Content Security-Richtlinie der Sandbox kann nach Bedarf angepasst werden.