Manifest: Web'den Erişilebilir Kaynaklar

Web'den erişilebilen kaynaklar, web sayfaları veya diğer tarayıcılar tarafından erişilebilen bir uzantıda bulunan dosyalardır uzantılar. Uzantılar, genellikle olması gereken resimleri veya diğer öğeleri göstermek için bu özelliği kullanır. ancak bir uzantının paketindeki tüm öğeler web'den erişilebilir hale getirilebilir.

Varsayılan olarak hiçbir kaynak web'e erişilemez. Bu durum, kötü amaçlı web sitelerinin kullanıcının yüklediği uzantıların parmak izi almasına izin verir. veya yüklü uzantılardaki güvenlik açıklarını (örneğin XSS hataları) kötüye kullanın. Yalnızca bir uzantının kaynağından yüklenen sayfalar veya komut dosyaları bu uzantının kaynaklarına erişebilir.

Manifest beyanı

Hangi kaynakların maruz kalabileceğini ve hangi kullanıcılara açık olacağını bildirmek için web_accessible_resources manifest özelliğini kullanın kaynaklar. Bu özellik, kaynak erişim kurallarını bildiren bir nesne dizisidir. Her bir nesne çok sayıda uzantı kaynağını listeler ve matches ya da Bu kaynaklara erişebilecek kaynakları belirtmek için extension_ids anahtarları.

{
  ...
  "web_accessible_resources": [
    {
      "resources": [ "test1.png", "test2.png" ],
      "matches": [ "https://web-accessible-resources-1.glitch.me/*" ]
    }, {
      "resources": [ "test3.png", "test4.png" ],
      "matches": [ "https://web-accessible-resources-2.glitch.me/*" ]
    }
  ],
  ...
}

Dizideki her nesne şu öğeleri içerir:

"resources"
Her biri, uzantının kök dizininden belirli bir kaynağa giden göreli bir yolu içeren dize dizisi. Kaynaklar, joker karakter eşleşmeleri için yıldız işaretleri (*) içerebilir. Örneğin, "/images/*", uzantının images/ dizinindeki her şeyi yinelemeli olarak gösterirken, "*.png" tüm PNG dosyalarını gösterir.
"matches"
Her biri, bu kaynak grubuna hangi sitelerin erişebileceğini belirten bir eşleşme kalıbı içeren bir dize dizisi. URL'leri eşleştirmek için yalnızca kaynak kullanılır. Kaynaklar, alt alan adı eşleştirmeyi içerir. Google Chrome "Geçersiz eşleşme kalıbı" yayınlıyor hatasını gösterir.
"extension_ids"
Her biri, kaynaklara erişebilen bir uzantının kimliğini içeren bir dize dizisi.

Her öğe, bir "resources" öğesi ile bir "matches" veya "extension_ids" öğesi içermelidir. Bu komut, belirtilen kaynakları kalıpla eşleşen web sayfalarına veya eşleşen kimliklere sahip uzantılara gösteren bir eşleme oluşturur.

Bir web sayfasında URL kullanılan kaynaklar chrome-extension://[PACKAGE ID]/[PATH] (runtime.getURL() ile oluşturulabilir) yöntemidir. Kaynaklar uygun CORS başlıklarıyla sunulur. Böylece kullanılabilirler fetch() kullanılıyor.

Bir web kaynağından uzantı kaynağına gitme, kaynak yalnızca web'den erişilebilir olarak listelenir. Şu köşede yer alan durumlara dikkat edin:

  • Bir uzantı, herkese açık bir alanı yönlendirmek için webRequest API'yi kullandığında Web erişimi olmayan bir kaynağa yapılan kaynak istekleri de engellenir.
  • Herkese açık kaynaklardan gelen yönlendirmeler, web'e erişilemeyen kaynağın sahibi, yönlendiren kullanıcı olsa bile engellenir uzantısına sahip olur.
  • "incognito" alanının değeri "split" olarak ayarlanmadığı sürece gezinme, gizli modda engellenir.

İçerik komut dosyalarına izin verilmesi gerekmez.

Örnek

Web'e Erişilebilir Kaynaklar örneği, bu öğenin çalışan bir uzantıda kullanımını gösterir.