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.
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.
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.
İ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 kullanıldığında:
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
veyatabs.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:
- Bir tarayıcı işlemi yürütme
- Bir sayfa işlemi yürütme
- Bağlam menüsü öğesini yürütme
- commands API'sinden bir klavye kısayolunu yürütme
- Çok amaçlı adres çubuğu API'sinden gelen bir öneriyi kabul etme
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.
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.
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.
Chrome, .crx
dosyası ve uzantının adını içeren .pem
dosyası olmak üzere iki dosya oluşturur.
gizli anahtardır.
Ö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.
.crx
dosyasını bıraktıktan sonra tarayıcı, uzantının eklenip eklenemeyeceğini sorar
uyarılar.
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ı |
---|---|---|
|
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. |
|
"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.
Uzantı otomatik olarak güncellenirse, kullanıcı yeni izin verir.
Yeni özelliği isteğe bağlı hale getirip
Manifestteki optional_permissions
.