İzinleri beyan edin ve kullanıcıları uyarın

Uzantıların web sitelerine ve çoğu Chrome API'sine erişme özelliği beyan edilen izinlerini inceleyin. İzinler yalnızca uygulamanın işlevselliği için gerekenlerle sınırlandırılmalıdır. İzinlerin sınırlandırılması, uzantının özelliklerini oluşturur ve olası veri aktarımlarını azaltır . Google Analytics 4'ü kullanarak uzantıları ve kullanıcılarını açık, minimum düzeyde ve isteğe bağlı izinlere sahip olmalıdır.

İzinleri düzenle

İzinler, Chrome API veya eşleşme kalıplarına atıfta bulunan ve bir veya daha fazla ana makine. Bunlar manifest dosyasında listelenir ve gerekli izinler olarak belirtilir veya isteğe bağlı izinler olarak kabul edilir.

{
  "name": "Permissions Extension",
  ...
  // required permissions
  "permissions": [
    "activeTab",
    "contextMenus",
    "storage"
  ],
  // optional permissions
  "optional_permissions": [
    "topSites",
    "http://www.developer.chrome.com/*"
  ],
      ...
  "manifest_version": 2
}

Gerekli izinleri yalnızca uzantının temel işlevi için gerekli olan izinlerle sınırlayın. uzantısı şu anda ihtiyaç duyduğundan daha fazla izin istememelidir; geleceğe gerekli olabilecek izinleri isteme.

İsteğe bağlı özellikler için gereken izinler, isteğe bağlı izinler olarak kaydedilmelidir. Bu kullanıcıların uzantı sağlamak için ne kadar erişim istediklerine ve hangi özelliklere emin olun.

Gerekli izinleri tanımlama

Basit bir uzantının birden fazla izin istemesi gerekebilir ve birçok izin gösterilir uyarıları görebilirsiniz. Kullanıcıların, sınırlı uyarı veya izinlerin açıklanmasıdır.

Yükleme sırasında uzantı izni uyarıları

Bir uzantının temel işlevini ve bunun için hangi izinleri gerektiğini belirleyin. Dikkatlice ancak uyarı içeren izinlere ihtiyaç duyuyorlarsa bu özellikleri isteğe bağlı hale getiriyoruz.

Etkinliklerle isteğe bağlı izinleri tetikleyin

İsteğe bağlı izinler örnek uzantısının temel işlevi, yeni sekme sayfasını geçersiz kılar. Özelliklerden biri, kullanıcının o gün hedefini gösteriyor. Bu özellik yalnızca depolama alanı gerektirir ve bu izin bir uyarı içermez.

Ek özellikleri etkinleştiren uzantı düğmesi

Uzantının ek bir özelliği vardır: Kullanıcının en popüler sitelerini göstererek. Bu özellik, topSites izni varsa bir uyarı görürsünüz.

topSites API için uzantı uyarısı

İsteğe bağlı olarak uyarı içeren izinlerden yararlanan özellikler geliştirme ve bu özellikleri kullanıma sunma Kullanıcıların uzantıyı doğal olarak ve risksiz bir şekilde tanıtmalarını sağlar. Ayrıca, Kullanıcıların uzantılarla deneyimlerini daha da özelleştirmelerine olanak tanır ve uyarıları açıklayacağım.

ActiveTab iznini değiştirin

activeTab izni, kullanıcının bulunduğu siteye geçici erişim izni verir ve uzantısını mevcut sekmede "tabs" iznini kullanacak şekilde ayarlayın. Projenin yaşam döngüsü boyunca Çoğu durumda "<all_urls>" ve yükleme sırasında hiçbir uyarı görüntülemez.

ActiveTab olmadan:

ActiveTab&#39;i olmayan izinler kullanıcı arayüzü

ActiveTab kullanıldığında:

ActiveTab içeren izinler kullanıcı arayüzü

activeTab izni, kullanıcı uzantıyı çağırır. Uzantının güvenliği ihlal edilirse saldırganın beklemesi gerekir Böylece kullanıcının erişim elde etmeden önce uzantıyı çağırması gerekir ve bu erişim yalnızca Sekmede gezinme veya sekmenin kapatılması.

Bir sekme için activeTab izni etkinken uzantılar şunları yapabilir:

  • İlgili sekmeden tabs.executeScript veya tabs.insertCSS numaralı telefonu arayın.
  • tabs.Tab nesnesi döndüren bir API aracılığıyla bu sekmenin URL'sini, başlığını ve site simgesini alın.
  • webRequest'i kullanarak sekmenin ana çerçeve kaynağına giden ağ isteklerine müdahale edin API'ye gidin. Uzantı, sekmenin ana çerçeve kaynağı için geçici olarak ana makine izinlerini alır.

Aşağıdaki kullanıcı hareketleri activeTab özelliğini etkinleştirir:

Erişime izin verme

Bir uzantının file:// URL'lerine erişmesi veya gizli modda çalışması gerekiyorsa kullanıcıların chrome://extensions adresindeki ayrıntılar sayfasında bu özelliklere erişimi etkinleştirin.

Uzantı ayrıntıları sayfasında dosya URL&#39;lerine ve gizli moda izin ver

Bir uzantı, gizli modda etkinleştirilip etkinleştirilmediğini extension.isAllowedIncognitoAccess() veya şu sorguyla file:// URL'de çalıştırılabilir: extension.isAllowedFileSchemeAccess()

İzinleri anlama

İzin uyarıları, bir API tarafından uzantı kullanıcılara verilen özellikleri açıklamak için bulunur ancak bu uyarılardan bazıları ilk başta belirgin olmayabilir. Örneğin, "tabs" izni alakasız gibi görünen bir uyarıyla sonuçlanır: uzantı, Tarama verilerinizi okuyabilir etkinliği hakkında daha fazla bilgi edinin. chrome.tabs API yalnızca yeni sekmeler açmak için kullanılabilse de aynı zamanda kullanılabilir tabs.Tab nesnelerini kullanarak her yeni açılan sekmeyle ilişkili URL'yi görmek için.

Alarm oluşmasını önlemek için mümkün olduğunda isteğe bağlı izinler veya daha az güçlü bir API uygulayın. uyarılar.

Uyarıları görüntüleme

Paketlenmemiş bir dosya olarak yüklenen uzantılar izin uyarısı gösterilmez. Bir uzantının izin uyarıları, chrome://extensions adresine gidin, geliştirici modunun etkinleştirildiğinden emin olun PAKET UZANTISI'nı tıklayın.

Geliştirici Modu Kontrol Edildi ve Uzantıyı Paketle&#39;yi tıklayın

Uzantının kök dizini alanında uzantının klasörünün yolunu belirtin ve ardından Uzantıyı Paketle düğmesi. İlk kez gönderilecek paket için Özel anahtar alanını yoksayın.

Uzantı Yolunu Belirtin ve ardından Uzantıyı Paketle&#39;yi tıklayın

Chrome, .crx dosyası ve uzantının adını içeren .pem dosyası olmak üzere iki dosya oluşturur. gizli anahtardır.

Paketlenmiş Uzantı Dosyaları

Özel anahtarı kaybetmeyin. .pem dosyasını gizli ve güvenli bir yerde saklayın; olacak Uzantıyı güncellemek için gerekenler.

.crx dosyasını, Chrome Uzantısının Yönetim sayfasına bırakarak yükleyin.

Yüklemek için Dosyayı Bırak

.crx dosyasını bıraktıktan sonra tarayıcı, uzantının eklenip eklenemeyeceğini sorar uyarılar.

Yeni Sekme Uzantısıyla İlgili Uyarı

Uyarı içeren izinler

Not: İzin tabloları en iyi çaba esasına göre güncellenir ve küçük tutarsızlıklar içerebilir mevcut uyarılarla karşılaştıracaksınız. Ayrıca, bazı izinler ile eşleştirildiğinde uyarı görüntülenmeyebilir. diğer izinler'i tıklayın. Örneğin, "tabs" uyarısı, uzantı şu durumlarda da gösterilmez: şu istekte bulundu: "<all_urls>". Uzantı izinleri için gösterilen en son uyarıları doğrulamak üzere aşağıdaki adımları izleyin: Uyarıları Görüntüleme bölümündeki adımları uygulayın.

İzin Açıklama Uyarı
  • "http://*/*"
  • "https://*/*"
  • "*://*/*"
  • "<all_urls>"
Tüm ana makinelere uzantı erişim izni verir. Her bir ana makine izni için beyanda bulunmaktan kaçınmak için activeTab iznine sahip olmanız gerekiyor. Ziyaret ettiğiniz web sitelerindeki tüm verilerinizi okuma ve değiştirme
"https://HostName.com/" Uzantının "https://HostName.com/" hesabına erişim izni verir. Herhangi bir şeyi beyan etmekten activeTab iznini kullanarak ana makine izinlerini sağlayın. HostName.com adresinde verilerinizi okuma ve değiştirme
"bookmarks" Uzantınıza chrome.bookmarks API'sine erişim izni verir. Yer işaretlerinizi okuma ve değiştirme
"clipboardRead" Uzantı document.execCommand('paste') kullanıyorsa gereklidir. Kopyaladığınız ve yapıştırdığınız verileri okuma
"clipboardWrite" Uzantının document.execCommand('copy') veya document.execCommand('cut'). Kopyaladığınız ve yapıştırdığınız verileri değiştirme
"contentSettings" Uzantınıza chrome.contentSettings API'sine erişim izni verir. Web sitelerini kontrol eden ayarlarınızı değiştirme çerezler, JavaScript, eklentiler ve benzeri coğrafi konum, mikrofon, kamera vb.
"debugger" Uzantınıza chrome.debugger API'sine erişim izni verir.
  • Sayfa hata ayıklayıcı arka ucuna erişme
  • Ziyaret ettiğiniz web sitelerindeki tüm verilerinizi okuma ve değiştirme
"declarativeNetRequest" Uzantınıza chrome.declarativeNetRequest API'sine erişim izni verir. Sayfa içeriğini engelleme
"desktopCapture" Uzantınıza chrome.desktopCapture API'sine erişim izni verir. Ekranınızın içeriğini yakalama
"downloads" Uzantınıza chrome.downloads API'sine erişim izni verir. İndirilenleri yönetme
"geolocation" Uzantının, HTML5 coğrafi konum API'sini kullanmasına izin verir kullanıcı izin istemeden kullanabilirsiniz. Fiziksel konumunuzu belirleme
"history" Uzantınıza chrome.history API'sine erişim izni verir. Tarama geçmişinizi okuma ve değiştirme
"management" Uzantıya chrome.management API'sine erişim izni verir. Uygulamalarınızı, uzantılarınızı ve temalarınızı yönetme
"nativeMessaging" Uzantının yerel mesajlaşma API'sine erişmesine izin verir. İşbirliği yapan yerel uygulamalarla iletişim kurma
"notifications" Uzantınıza chrome.notifications API'sine erişim izni verir. Bildirimleri görüntüleme
"pageCapture" Uzantıya chrome.pageCapture API'sine erişim izni verir. Ziyaret ettiğiniz web sitelerindeki tüm verilerinizi okuma ve değiştirme
"privacy" Uzantıya chrome.privacy API'sine erişim verir. Gizlilikle ilgili ayarlarınızı değiştirme
"proxy" Uzantının chrome.proxy API'sine erişim izni verir. Ziyaret ettiğiniz web sitelerindeki tüm verilerinizi okuma ve değiştirme
"system.storage" Uzantıya chrome.system.storage API'sine erişim izni verir. Depolama cihazlarını tanımlama ve çıkarma
"tabCapture" Uzantılara chrome.tabCapture API'sine erişim izni verir. Ziyaret ettiğiniz web sitelerindeki tüm verilerinizi okuma ve değiştirme
"tabs" Uzantıya, çeşitli API'ler tarafından kullanılan Tab nesnelerinin özel alanlarına erişim izni verir chrome.tabs ve chrome.windows dahil. İçinde çoğu durumda, uzantının kullanılabilmesi için "tabs" iznini beyan etmesi gerekmez. bu API'lerden yararlanabilirsiniz. Tarama geçmişinizi okuma
"topSites" Uzantıya chrome.topSites API'sine erişim izni verir. En sık ziyaret ettiğiniz web sitelerinin listesini okuma
"ttsEngine" Uzantıya chrome.ttsEngine API'sine erişim izni verir. Sentezlenmiş konuşma kullanarak söylenen tüm metni okuma
"webNavigation" Uzantıya chrome.webNavigation API'sine erişim izni verir. Tarama geçmişinizi okuma

İzinleri güncelle

Ek izinler içeren bir uzantı güncellendiğinde uzantı geçici olarak devre dışı bırakılabilir. Kullanıcının yapması gerekenler tüm yeni uyarıları kabul ettikten sonra tekrar etkinleştirmenizi öneririz.

Kullanıcı artık sekmeler iznini içeren bir uzantıyı manuel olarak güncellerse bir uyarı görüntülenmesini sağlayın.

Sekme Ekleme İzni

Uzantı otomatik olarak güncellenirse, kullanıcı yeni izin verir.

Uzantı devre dışı bırakıldı

İzinleri kabul edin

Yeni özelliği isteğe bağlı hale getirip Manifestteki optional_permissions.