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 ditetapkan untuk halaman ekstensi dan halaman ekstensi dengan sandbox.

"Halaman ekstensi" kebijakan berlaku untuk konteks halaman dan pekerja dalam 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 ditentukan sebagai halaman sandbox di manifes.

Kebijakan Default

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

Default ini setara dengan menentukan kebijakan berikut dalam manifes:

{
  // ...
  "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, izin untuk mengevaluasi skrip dari luar ekstensi akan lebih longgar.

Kebijakan Keamanan Konten minimum dan yang disesuaikan

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

Kebijakan Halaman Ekstensi

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

{
  // ...
  "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 menampilkan error seperti ini saat penginstalan:

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

Kebijakan Halaman Sandbox

Kebijakan default untuk halaman dalam sandbox jauh lebih longgar dibandingkan halaman dengan ekstensi, karena halaman sandbox tidak memiliki akses ke API ekstensi, atau akses langsung ke halaman tanpa sandbox. Kebijakan keamanan konten sandbox dapat disesuaikan sesuai kebutuhan.