Manifes - Sandbox

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 asal unik dengan sandbox, dan secara opsional Kebijakan Keamanan Konten untuk digunakan dengan halaman tersebut. Menggunakan sandbox memiliki dua implikasi:

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

    Misalnya, berikut adalah cara menentukan agar 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 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 nilai CSP harus memiliki perintah sandbox dan mungkin tidak memiliki token allow-same-origin (lihat spesifikasi HTML5 untuk mengetahui 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 Anda harapkan akan dimuat di jendela atau bingkai. Resource yang digunakan oleh halaman dalam sandbox (misalnya, stylesheet atau file sumber JavaScript) tidak perlu muncul dalam daftar sandboxed_page, melainkan harus menggunakan sandbox halaman yang menyematkannya.

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

Halaman dengan sandbox hanya dapat ditentukan saat menggunakan manifest_version 2 atau yang lebih baru.