Peringatan: Mulai versi 57, Chrome tidak akan lagi mengizinkan konten web eksternal (termasuk frame dan skrip tersemat) di dalam halaman dengan sandbox. Sebagai gantinya, gunakan webview.
Menentukan kumpulan halaman aplikasi atau ekstensi yang akan ditayangkan di origin unik sandbox, dan secara opsional, Kebijakan Keamanan Konten untuk digunakan dengan halaman tersebut. Berada di sandbox memiliki dua implikasi:
- Halaman dengan sandbox tidak akan memiliki akses ke API ekstensi atau aplikasi, atau akses langsung ke
halaman tanpa sandbox (halaman tersebut dapat berkomunikasi dengan halaman tersebut melalui
postMessage()
). Halaman dengan sandbox tidak tunduk pada Content Security Policy (CSP) yang digunakan oleh seluruh aplikasi atau ekstensi (halaman ini memiliki nilai CSP terpisah). Artinya, misalnya, skrip inline dapat menggunakan skrip inline dan
eval
.Misalnya, berikut cara menentukan bahwa dua halaman ekstensi akan ditayangkan di sandbox dengan CSP kustom:
{ ... "sandbox": { "pages": [ "page1.html", "directory/page2.html" ] // content_security_policy is optional. "content_security_policy": "sandbox allow-scripts; script-src 'self'" ], ... }
Jika tidak ditentukan, nilai
content_security_policy
defaultnya adalahsandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';
. Anda dapat menentukan nilai CSP untuk membatasi sandbox lebih lanjut, tetapi nilai tersebut harus memiliki direktifsandbox
dan tidak boleh memiliki tokenallow-same-origin
(lihat spesifikasi HTML5 untuk kemungkinan token sandbox). Selain itu, CSP yang Anda tentukan mungkin tidak mengizinkan pemuatan konten web eksternal di dalam halaman dengan sandbox.
Perhatikan bahwa Anda hanya perlu mencantumkan halaman yang diharapkan akan dimuat di windows atau frame. Resource
yang digunakan oleh halaman dengan sandbox (misalnya, stylesheet atau file sumber JavaScript) tidak perlu muncul dalam
daftar sandboxed_page
, resource tersebut akan menggunakan sandbox halaman yang menyematkannya.
"Menggunakan eval di Ekstensi Chrome. Dengan aman" membahas lebih lanjut cara menerapkan alur kerja sandboxing yang memungkinkan penggunaan library yang akan mengalami masalah saat dijalankan berdasarkan Kebijakan Keamanan Konten default ekstensi.
Halaman dengan sandbox hanya dapat ditentukan saat menggunakan manifest_version
2 atau yang lebih baru.