Opcjonalny klucz pliku manifestu zawiera politykę bezpieczeństwa treści platformy internetowej, która określa ograniczenia dotyczące skryptów, stylów i innych zasobów, z których może korzystać rozszerzenie. W tym kluczu manifestu można zdefiniować osobne opcjonalne zasady dla stron rozszerzeń i stron rozszerzeń w piaskownicy.
Zasada „Strony rozszerzeń” ma zastosowanie do kontekstu strony i instancji roboczych w rozszerzeniu. Obejmuje to wyskakujące okienko rozszerzenia, narzędzie działające w tle oraz karty 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 w piaskownicy.
Domyślna zasada
Jeśli użytkownik nie zdefiniował polityki bezpieczeństwa treści w pliku manifestu, zarówno w przypadku stron rozszerzeń, jak i stron rozszerzeń w piaskownicy będą używane właściwości domyślne.
Te wartości domyślne odpowiadają określonym zasadom w pliku manifestu:
{
// ...
"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 wczytywać tylko lokalne skrypty i obiekty z własnych zasobów w pakiecie. Komponent WebAssembly zostanie wyłączony, a rozszerzenie nie będzie uruchamiać wbudowanego kodu JavaScript ani oceniać ciągów znaków jako kodu wykonywalnego. Dodana strona w trybie piaskownicy będzie miała bardziej łagodne uprawnienia do oceny skryptów spoza rozszerzenia.
Minimalne i niestandardowe zasady bezpieczeństwa treści
Deweloperzy mogą dodawać i usuwać reguły w swoich rozszerzeniach albo stosować minimalną wymaganą zasadę bezpieczeństwa treści zgodnie z potrzebami projektu.
Zasady dotyczące stron rozszerzeń
Na stronach rozszerzeń Chrome wymusza stosowanie minimalnej zasady bezpieczeństwa treści. Jest to równoważne z określeniem w pliku manifestu tych zasad:
{
// ...
"content_security_policy": {
"extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self';"
}
// ...
}
Zasada extension_pages
nie może być złagodzona powyżej tej minimalnej wartości. Inaczej mówiąc, do dyrektyw nie można dodawać innych źródeł skryptów, np. 'unsafe-eval'
do script-src
. Jeśli dodasz niedozwolone źródło do zasady rozszerzenia, podczas instalacji Chrome 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 w trybie piaskownicy
Domyślna zasada w przypadku stron w trybie piaskownicy jest znacznie mniej 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 tą piaskownicą. Zasadę bezpieczeństwa treści w trybie piaskownicy można dostosować do potrzeb.