Kullanıcılar, gizliliklerini tehlikeye atan veya ihtiyaç duyduğu izinlerden daha fazlasını isteyen uzantıları yüklemez. İzin istekleri kullanıcılara mantıklı gelmeli ve uzantının uygulanması için gerekli olan kritik bilgilerle sınırlı olmalıdır. Kullanıcı verilerini toplayan veya ileten uzantılar, Kullanıcı Gizliliğini Koruma bölümündeki politikalara uymalıdır.
Kimliklerinin güvende kalması için bu önlemleri alarak uzantı kullanıcılarını koruyun ve onlara saygı gösterin.
Gerekli izinleri azaltma
Bir uzantının erişebileceği API'ler, manifest dosyasının permissions alanında belirtilir. Ne kadar çok izin verilirse saldırganların bilgileri ele geçirebileceği yollar da o kadar artar. Yalnızca bir uzantının bağlı olduğu API'ler listelenmeli ve daha az müdahaleci seçenekler dikkate alınmalıdır. Bir uzantı ne kadar az izin isterse kullanıcıya o kadar az izin uyarısı gösterilir. Kullanıcıların, sınırlı uyarı içeren bir uzantıyı yükleme olasılığı daha yüksektir.
Uzantılar, şu anda ihtiyaç duymadıkları ancak gelecekte uygulayabilecekleri izinleri isteyerek kullanıcı verilerine erişimi "geleceğe uygun" hale getirmemelidir. Uzantı güncellemelerine yeni izinler ekleyin ve bu izinleri isteğe bağlı hale getirmeyi düşünün.
activeTab
Komut dosyaları eklemek için ana makine izinlerini kullanan uzantılar genellikle activeTab yerine kullanılabilir. activeTab izni, uzantıya yalnızca kullanıcı uzantıyı çağırdığında geçerli olan sekmede geçici erişim izni verir. Kullanıcı geçerli sekmeden ayrıldığında veya sekmeyi kapattığında erişim kesilir. <all_urls>'nın birçok kullanımına alternatif olarak sunulur.
{
"name": "Very Secure Extension",
"version": "1.0",
"description": "Example of a Secure Extension",
"permissions": ["activeTab"],
"manifest_version": 3
}
activeTab izni, yükleme sırasında uyarı mesajı göstermez.
İsteğe bağlı izinleri etkinleştirme
İsteğe bağlı izinler ekleyerek kullanıcıların bir uzantıdan hangi özellikleri ve izinleri kullanmak istediklerini seçmelerini sağlayın. Bir özellik, uzantının temel işlevi için gerekli değilse bu özelliği isteğe bağlı hale getirin ve API'yi veya alanı optional_permissions alanına taşıyın.
{
"name": "Very Secure Extension",
...
"optional_permissions": [ "tabs", ],
"optional_host_permissions": ["https://www.google.com/" ],
...
}
İsteğe bağlı izinlerin eklenmesi, kullanıcının ilgili özelliği etkinleştirmesi durumunda uzantının neden belirli bir izne ihtiyaç duyduğunu açıklamasına olanak tanır. Uzantı, kullanıcıya özellikleri etkinleştirme seçeneği sunabilir.

Tamam!'ı tıkladığınızda hizmet çalışanı aşağıdaki etkinliği tetikler.
chrome.action.onClicked.addListener((event) => {
// Permissions must be requested from inside a user gesture, like a button's
// click handler.
chrome.permissions.request(
{
permissions: ["tabs", "scripting"],
origins: ['https://www.google.com/']
},
function (granted) {
// The callback argument will be true if the user granted the permissions.
if (granted) {
// doSomething();
} else {
// doSomethingElse();
}
}
);
});
Kullanıcıya aşağıdaki istek gösterilir.

İsteğe bağlı izinler, uzantı güncellemesinde de uygulanabilir. Bu sayede, yeni özellik, uzantı devre dışı bırakılmadan kullanıcıların kullanımına sunulur. Yeni gerekli izinlerle güncelleme yapıldığında uzantı devre dışı bırakılabilir.
Kullanıcı bilgilerini sınırlama ve güvenliğini sağlama
Yalnızca bir uzantının ihtiyaç duyduğu minimum veri miktarını isteyin. Bir uzantının kullanıcıdan istediği bilgi miktarı ne kadar az olursa uzantının güvenliği ihlal edildiğinde maruz kalınan risk de o kadar az olur.
İstenen tüm kullanıcı verileri dikkatli bir şekilde işlenmelidir. Verileri kayıtlı bir alanla güvenli bir sunucuda depolama ve alma Bağlanmak için her zaman HTTPS kullanın ve hassas kullanıcı verilerini uzantının istemci tarafında tutmaktan kaçının. Uzantı depolama alanı şifrelenmez.
Veri tasarrufu ve gizli mod
Uzantılar, storage API'yi kullanarak veya veri kaydedilmesine neden olan sunucu istekleri göndererek verileri kaydedebilir. Uzantının bir şeyi kaydetmesi gerektiğinde öncelikle bunun bir gizli pencereden olup olmadığını göz önünde bulundurun. Uzantılar varsayılan olarak gizli pencerelerde çalışmaz.
Gizli mod, pencerenin iz bırakmayacağını garanti eder. Uzantılar, gizli pencerelerdeki verilerle çalışırken bu sözü tutmalıdır. Bir uzantı normalde tarama geçmişini kaydediyorsa gizli pencerelerdeki geçmişi kaydetmeyin. Ancak uzantılar, gizli olsun veya olmasın tüm pencerelerdeki ayar tercihlerini saklayabilir.
Bir pencerenin gizli modda olup olmadığını belirlemek için ilgili tabs.Tab veya windows.Window nesnesinin incognito özelliğini kontrol edin.
function saveTabData(tab) {
if (tab.incognito) {
return;
} else {
chrome.storage.local.set({data: tab.url});
}
}