Manifes - Sandbox

Menentukan kumpulan halaman ekstensi yang akan ditayangkan di asal unik dengan sandbox. Kebijakan Keamanan Konten yang digunakan oleh halaman dengan sandbox ekstensi ditentukan dalam kunci "content_security_policy".

Menggunakan sandbox memiliki dua implikasi:

  1. Halaman dalam sandbox tidak akan memiliki akses ke API ekstensi, atau akses langsung ke halaman yang tidak di-sandbox (dapat berkomunikasi dengan halaman tersebut menggunakan postMessage()).
  2. Halaman yang di-sandbox tidak tunduk pada Kebijakan Keamanan Konten (CSP) yang digunakan oleh ekstensi lainnya (memiliki nilai CSP terpisah). Artinya, misalnya, Bard dapat menggunakan skrip inline dan eval().

Misalnya, berikut adalah cara menentukan agar 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 membatasi sandbox lebih lanjut, tetapi HARUS menyertakan perintah "sandbox" dan TIDAK BOLEH memiliki token allow-same-origin (lihat spesifikasi HTML5 untuk kemungkinan token sandbox).

Perhatikan bahwa Anda hanya perlu mencantumkan halaman yang Anda harapkan akan dimuat di windows atau frame. Resource yang digunakan oleh halaman dalam sandbox (misalnya, stylesheet atau file sumber JavaScript) tidak perlu muncul dalam daftar pages karena akan menggunakan sandbox frame yang menyematkannya.

"Menggunakan eval() di Ekstensi Chrome" menjelaskan secara lebih detail tentang penerapan alur kerja sandboxing yang memungkinkan penggunaan library yang akan mengalami masalah eksekusi berdasarkan Kebijakan Keamanan Konten default ekstensi.