Ostrzeżenie: od wersji 57 Chrome nie będzie już zezwalać na zewnętrzne treści internetowe (w tym umieszczone ramki i skrypty) na stronach w piaskownicy. Użyj komponentu WebView.
Określa zbiór stron aplikacji lub rozszerzeń, które mają być wyświetlane w ramach unikatowego pochodzenia w piaskownicy, oraz opcjonalnie zasady bezpieczeństwa treści, których mają one używać. Użycie piaskownicy ma 2 konsekwencje:
- Strona w piaskownicy nie ma dostępu do interfejsów API rozszerzeń ani aplikacji ani bezpośredniego dostępu do stron niebędących w piaskownicy (może się z nimi komunikować za pomocą interfejsu
postMessage()
). Strona w piaskownicy nie podlega zasadom Content Security Policy (CSP) stosowanym przez pozostałą część aplikacji lub rozszerzenia (ma ona własną wartość CSP). Oznacza to, że może ona na przykład używać skryptu w ciele wiadomości i elementu
eval
.Oto przykład określenia, że 2 strony rozszerzenia mają być wyświetlane w piaskownicy z niestandardowym 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 wartości, domyślną wartością
content_security_policy
będziesandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';
. Aby jeszcze bardziej ograniczyć piaskownicę, możesz określić wartość CSP, ale musi ona zawierać dyrektywęsandbox
i nie może zawierać znacznikaallow-same-origin
(możliwe znaczniki piaskownicy znajdziesz w specyfikacji HTML5). Ponadto podany przez Ciebie CSP może nie zezwalać na wczytywanie treści zewnętrznych na stronach w piaskownicy.
Pamiętaj, że musisz podać tylko te 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ą być widoczne na liście sandboxed_page
, ponieważ będą korzystać z piaskownicy strony, na której są osadzone.
„Using eval in Chrome Extensions. Bezpiecznie.” zawiera szczegółowe informacje o wdrażaniu procesu piaskownicy, który umożliwia korzystanie z bibliotek, które w innym przypadku mogłyby mieć problemy z wykonaniem w ramach domyślnych zasad Content Security Policy rozszerzenia.
Stronę w sandboksie można określić tylko wtedy, gdy używasz manifest_version
2 lub nowszej wersji.