Manifes - Kebijakan Keamanan Konten

Kunci manifes opsional yang berisi kebijakan keamanan konten platform web yang menentukan batasan pada skrip, gaya, dan resource lain yang dapat digunakan ekstensi. Dalam kunci manifes ini, kebijakan opsional terpisah dapat ditentukan untuk halaman ekstensi dan halaman ekstensi dengan sandbox.

Kebijakan "halaman ekstensi" berlaku untuk konteks halaman dan pekerja di ekstensi. Ini akan mencakup pop-up ekstensi, pekerja latar belakang, dan tab dengan halaman HTML atau iframe yang dibuka oleh ekstensi. Kebijakan sandbox berlaku untuk semua halaman yang ditetapkan sebagai halaman sandbox dalam manifes.

Kebijakan Default

Jika kebijakan keamanan konten tidak ditetapkan oleh pengguna di manifes, properti default akan digunakan untuk halaman ekstensi dan halaman ekstensi dalam sandbox.

Default ini sama dengan menetapkan kebijakan berikut dalam manifes Anda:

{
  // ...
  "content_security_policy": {
    "extension_pages": "script-src 'self'; object-src 'self';",
    "sandbox": "sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';"
  }
  // ...
}

Dalam hal ini, ekstensi hanya akan memuat skrip dan objek lokal dari resource terpaketnya sendiri. WebAssembly akan dinonaktifkan, dan ekstensi tidak akan menjalankan JavaScript inline atau dapat mengevaluasi string sebagai kode yang dapat dieksekusi. Jika halaman sandbox ditambahkan, halaman tersebut akan memiliki izin yang lebih longgar untuk mengevaluasi skrip dari luar ekstensi.

Kebijakan Keamanan Konten minimum dan yang disesuaikan

Developer dapat menambahkan atau menghapus aturan untuk ekstensi mereka, atau menggunakan kebijakan keamanan konten minimum yang diwajibkan, agar sesuai dengan kebutuhan project mereka.

Kebijakan Halaman Ekstensi

Chrome menerapkan kebijakan keamanan konten minimum untuk halaman ekstensi. Ini sama dengan menetapkan kebijakan berikut dalam manifes Anda:

{
  // ...
  "content_security_policy": {
    "extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self';"
  }
  // ...
}

Kebijakan extension_pages tidak dapat dilonggarkan di luar nilai minimum ini. Dengan kata lain, Anda tidak dapat menambahkan sumber skrip lain ke perintah, seperti menambahkan 'unsafe-eval' ke script-src. Jika Anda menambahkan sumber yang tidak diizinkan ke kebijakan ekstensi, Chrome akan memunculkan error seperti ini pada waktu penginstalan:

'content_security_policy.extension_pages': Insecure CSP value "'unsafe-eval'" in directive 'script-src'.

Kebijakan Halaman Sandbox

Kebijakan default untuk halaman dengan sandbox jauh lebih longgar daripada halaman ekstensi, karena halaman sandbox tidak memiliki akses ke API ekstensi atau akses langsung ke halaman yang tidak di-sandbox. Kebijakan keamanan konten sandbox dapat disesuaikan dengan kebutuhan.