Manifest: İçerik Güvenliği Politikası

Bir uzantının kullanabileceği komut dosyaları, stiller ve diğer kaynaklarla ilgili kısıtlamaları belirten bir web platformu içerik güvenlik politikasını içeren isteğe bağlı manifest anahtarı. Bu manifest anahtarı içinde, hem uzantı sayfaları hem de korumalı alana alınan uzantı sayfaları için ayrı isteğe bağlı politikalar tanımlanabilir.

"Uzantı sayfaları" politika, uzantıdaki sayfa ve çalışan bağlamları için geçerlidir. Buna uzantı pop-up'ı, arka plan çalışanı ve uzantı tarafından açılan HTML sayfaları veya iframe'ler içeren sekmeler dahildir. Korumalı alan politikası, manifest'te korumalı alan sayfası olarak belirtilen tüm sayfalar için geçerlidir.

Varsayılan Politika

İçerik güvenliği politikası, manifest dosyasında kullanıcı tarafından tanımlanmamışsa hem uzantı sayfaları hem de korumalı alana alınan uzantı sayfaları için varsayılan özellikler kullanılır.

Bu varsayılan ayarlar, manifest dosyanızda aşağıdaki politikaları belirtmeye eşdeğerdir:

{
  // ...
  "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';"
  }
  // ...
}

Bu durumda uzantı, yalnızca kendi paketlenmiş kaynaklarından yerel komut dosyalarını ve nesneleri yükler. WebAssembly devre dışı bırakılır ve uzantı, satır içi JavaScript'i çalıştırmaz veya dizeleri yürütülebilir kod olarak değerlendiremez. Bir korumalı alan sayfası eklenirse, bu sayfa, komut dosyalarını uzantının dışından değerlendirmek için daha esnek izinlere sahip olur.

Minimum ve özelleştirilmiş İçerik Güvenliği Politikaları

Geliştiriciler projelerinin ihtiyaçlarına uygun olarak, uzantıları için kurallar ekleyip kaldırabilir veya gereken minimum içerik güvenliği politikasını kullanabilirler.

Uzantı Sayfaları Politikası

Chrome, uzantı sayfaları için minimum bir içerik güvenliği politikası uygular. Manifest'inizde aşağıdaki politikayı belirtmekle eşdeğerdir:

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

extension_pages politikası, bu minimum değeri aşacak şekilde gevşetilemez. Bir başka deyişle, direktiflere başka komut dosyası kaynakları (ör. script-src öğesine 'unsafe-eval' ekleme) ekleyemezsiniz. Uzantınızın politikasına izin verilmeyen bir kaynak eklerseniz Chrome, yükleme sırasında şuna benzer bir hata verir:

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

Korumalı Alan Sayfaları Politikası

Korumalı alanlı sayfaların varsayılan politika, uzantı sayfalarına göre çok daha esnektir. Bunun nedeni, korumalı alan sayfasının uzantı API'lerine veya korumalı alana alınmamış sayfalara doğrudan erişimi yoktur. Korumalı alan içeriği güvenlik politikası gerektiği gibi özelleştirilebilir.