Menentukan kumpulan halaman ekstensi yang akan ditayangkan dalam origin unik dalam sandbox. Tujuan
Kebijakan Keamanan Konten yang digunakan oleh halaman ekstensi yang di-sandbox ditentukan dalam
Tombol "content_security_policy"
.
Berada di sandbox memiliki dua implikasi:
- Halaman dalam sandbox tidak akan memiliki akses ke API ekstensi, atau akses langsung ke
halaman yang tidak di-sandbox (halaman dapat berkomunikasi dengannya menggunakan
postMessage()
). - Halaman dalam sandbox tidak tunduk pada Kebijakan Keamanan Konten (CSP) yang digunakan oleh
ekstensi (memiliki nilai CSP tersendiri). Ini berarti, sebagai contoh, sistem ini dapat
gunakan skrip inline dan
eval()
.
Misalnya, berikut cara menentukan bahwa dua halaman ekstensi akan ditayangkan di sandbox dengan CSP kustom:
{
...
"content_security_policy": {
"sandbox": "sandbox allow-scripts; script-src 'self' https://example.com"
},
"sandbox": {
"pages": [
"page1.html",
"directory/page2.html"
]
},
...
}
Jika tidak ditentukan, nilai "content_security_policy"
default adalah sandbox allow-scripts allow-forms
allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';
.
Anda dapat menentukan nilai CSP untuk lebih membatasi sandbox, tetapi HARUS menyertakan
"sandbox"
dan TIDAK BOLEH memiliki token allow-same-origin
(lihat HTML5
spesifikasi untuk kemungkinan token sandbox).
Perhatikan bahwa Anda hanya perlu mencantumkan halaman yang diharapkan akan dimuat di windows atau frame. Sumber daya
yang digunakan oleh halaman dalam sandbox (mis. stylesheet atau file sumber JavaScript) tidak perlu muncul di
pages
karena mereka akan menggunakan sandbox frame yang menyematkannya.
"Menggunakan eval() di Ekstensi Chrome" menjelaskan lebih detail tentang cara menerapkan alur kerja {i>sandbox <i}yang memungkinkan penggunaan {i>library <i}yang seharusnya akan mengalami masalah Kebijakan Keamanan Konten default milik ekstensi.