Plik manifestu – Content Security Policy

Opcjonalny klucz pliku manifestu zawierający politykę bezpieczeństwa treści platformy internetowej określającą ograniczenia dotyczące skryptów, stylów i innych zasobów, z których może korzystać rozszerzenie. W tym kluczu pliku manifestu można zdefiniować osobne zasady opcjonalne dla stron rozszerzeń i stron rozszerzeń w piaskownicy.

„Strony rozszerzeń” ma zastosowanie do kontekstu strony i instancji roboczych w rozszerzeniu. Dotyczy to wyskakującego okienka rozszerzenia, procesu roboczego w tle oraz kart ze stronami HTML lub elementami iframe, które zostały otwarte przez rozszerzenie. Zasada piaskownicy dotyczy wszystkich stron określonych w pliku manifestu jako strona piaskownicy.

Domyślna zasada

Jeśli zasada zabezpieczeń treści nie jest zdefiniowana przez użytkownika w pliku manifestu, zarówno na stronach rozszerzeń, jak i na stronach rozszerzeń w piaskownicy używane są właściwości domyślne.

Są one równoważne z określeniem w pliku manifestu tych zasad:

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

W takim przypadku rozszerzenie będzie ładować lokalne skrypty i obiekty tylko z własnych pakietów zasobów. Funkcja WebAssembly zostanie wyłączona, a rozszerzenie nie będzie uruchamiać wbudowanego JavaScriptu ani oceniać ciągów znaków jako kodu wykonywalnego. Jeśli dodasz stronę piaskownicy, będzie ona miała mniej restrykcyjne uprawnienia do oceny skryptów spoza rozszerzenia.

Minimalne i niestandardowe zasady bezpieczeństwa treści

Deweloperzy mogą dodawać i usuwać reguły dotyczące rozszerzeń lub stosować minimalną wymaganą zasadę zabezpieczeń treści, aby dostosować je do potrzeb projektu.

Zasady dotyczące stron rozszerzeń

Chrome wymusza minimalną politykę bezpieczeństwa treści na stronach rozszerzeń. Odpowiada to określenie w pliku manifestu tej zasady:

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

Zasada extension_pages nie może przekroczyć tej wartości minimalnej. Inaczej mówiąc, nie można dodawać innych źródeł skryptów do dyrektyw, np. dodać 'unsafe-eval' do script-src. Jeśli dodasz niedozwolone źródło do zasady rozszerzenia, Chrome podczas instalacji wyświetli błąd podobny do tego:

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

Zasady dotyczące stron piaskownicy

Domyślna zasada dla stron w piaskownicy jest o wiele bardziej restrykcyjna niż w przypadku stron rozszerzeń, ponieważ nie ma ona dostępu do interfejsów API rozszerzeń ani bezpośredniego dostępu do stron poza piaskownicą. Zasadę bezpieczeństwa treści piaskownicy można dostosować odpowiednio do potrzeb.