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

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

"Uzantı sayfaları" politikası, 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ınmış uzantı sayfaları için varsayılan özellikler kullanılır.

Bu varsayılan ayarlar, manifest dosyanızda aşağıdaki politikaların belirtilmesiyle 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 çalıştırmaz veya dizeleri yürütülebilir kod olarak değerlendiremez. Bir korumalı alan sayfası eklenirse, komut dosyalarını uzantının dışından değerlendirmek için daha rahat izinlere sahip olur.

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

Geliştiriciler, projelerinin ihtiyaçlarına uygun şekilde, uzantıları için kurallar ekleyebilir veya kaldırabilir ya da gerekli minimum içerik güvenliği politikasını kullanabilir.

Uzantı Sayfaları Politikası

Chrome, uzantı sayfaları için minimum içerik güvenliği politikasını zorunlu kılar. Manifest dosyasında aşağıdaki politikayı belirtmeye eşdeğerdir:

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

extension_pages politikası, bu minimum değerin üzerinde değiştirilemez. Diğer bir deyişle, yönergelere başka komut dosyası kaynakları ekleyemezsiniz (ör. script-src için 'unsafe-eval' eklemek). 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ı alan içeren sayfalar için varsayılan politika, uzantı sayfalarına göre çok daha esnektir. Bunun nedeni, korumalı alanın uzantı API'lerine veya korumalı alanda olmayan sayfalara doğrudan erişimi olmamasıdır. Korumalı alan içerik güvenlik politikası gerektiği gibi özelleştirilebilir.