Manifes - Sandbox

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:

  1. 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()).
  2. 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.