Ostrzeżenie: od wersji 57 Chrome nie będzie już zezwalać na wyświetlanie zewnętrznych treści z internetu (w tym osadzonych ramek i skryptów) na stronach w piaskownicy. Zamiast tego użyj widoku WebView.
Określa zbiór stron aplikacji lub rozszerzenia, które mają być wyświetlane w piaskownicy o unikalnym pochodzeniu, oraz opcjonalnie (standard) Content Security Policy, która ma być z nimi używana. Korzystanie z piaskownicy ma 2 konsekwencje:
- Strona w piaskownicy nie będzie mieć dostępu do interfejsów API rozszerzenia ani aplikacji ani bezpośredniego dostępu do stron poza piaskownicą (może się z nimi komunikować za pomocą funkcji
postMessage()). Strona w piaskownicy nie podlega zasadom bezpieczeństwa treści Content Security Policy (CSP) używanym przez resztę aplikacji lub rozszerzenia (ma własną wartość CSP). Oznacza to, że może na przykład używać skryptu wbudowanego i funkcji
eval.Oto na przykład, jak określić, że 2 strony rozszerzenia mają być wyświetlane w piaskownicy z niestandardową zasadą CSP:
{ ... "sandbox": { "pages": [ "page1.html", "directory/page2.html" ] // content_security_policy is optional. "content_security_policy": "sandbox allow-scripts; script-src 'self'" ], ... }Jeśli nie podasz żadnej opcji, domyślna wartość
content_security_policytosandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';. Możesz określić wartość CSP, aby jeszcze bardziej ograniczyć piaskownicę, ale musi ona zawierać dyrektywęsandboxi nie może zawierać tokenaallow-same-origin(możliwe tokeny piaskownicy znajdziesz w specyfikacji HTML5). Ponadto określona przez Ciebie zasada CSP nie może zezwalać na wczytywanie zewnętrznych treści internetowych na stronach w piaskownicy.
Pamiętaj, że musisz podać tylko strony, które mają być wczytywane w oknach lub ramkach. Zasoby używane przez strony w piaskownicy (np.arkusze stylów lub pliki źródłowe JavaScript) nie muszą znajdować się na liście sandboxed_page. Będą one korzystać z piaskownicy strony, która je osadza.
Więcej informacji o wdrażaniu przepływu pracy w piaskownicy, który umożliwia korzystanie z bibliotek, które w przeciwnym razie miałyby problemy z wykonywaniem w ramach domyślnej zasady bezpieczeństwa treści rozszerzenia, znajdziesz w artykule „Using eval in Chrome Extensions. Safely." goes into more detail about implementing a sandboxing workflow that enables use of libraries that would otherwise have issues executing under extension's default Content Security Policy.
Stronę w piaskownicy można określić tylko wtedy, gdy używasz manifest_version 2 lub nowszej.