Kullanıcı gizliliğini koruyun

Kullanıcılar, gizliliklerini ihlal eden veya ihtiyaç duyduğu ek izinleri isteyen uzantıları yüklemez. İzin istekleri kullanıcılar açısından anlamlı olmalı ve uzantının uygulanması için gereken 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.

Kimliklerini güvende tutmak için bu önlemleri ekleyerek uzantı kullanıcılarını koruyup onlara saygı gösterin.

Gerekli izinleri azaltın

Bir uzantının erişebileceği API'ler manifestin permissions alanında belirtilir. Ne kadar çok izin verilirse saldırganın bilgilere müdahale etmek için o kadar çok yolu olur. Yalnızca uzantının bağımlı olduğu API'ler listelenmeli ve daha az rahatsız edici seçeneklere dikkat edilmelidir. 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ı sayıda uyarı alan uzantıları yükleme ihtimali daha yüksektir.

Uzantılar, şu anda ihtiyaç duymadıkları ancak gelecekte uygulayabilecekleri izinleri isteyerek kullanıcı verilerine erişim konusunda "geleceğe hazır" olmamalıdır. Uzantı güncellemeleriyle yeni izinleri ekleyin ve bunları isteğe bağlı hale getirin.

activeTab

Komut dosyası yerleştirmek için ana makine izinlerini kullanan uzantılar, genellikle bunun yerine activeTab yerine activeTab kullanılabilir. activeTab izni, bir uzantının o anda etkin olan sekmeye geçici olarak erişmesine izin verir (yalnızca kullanıcı uzantıyı çağırdığında). Kullanıcı geçerli sekmeden ayrıldığında veya kapattığında erişim kesilir. <all_urls> işlevinin birçok kullanımına alternatif olarak hizmet verir.

{
  "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ştirin

İsteğe bağlı izinler ekleyerek kullanıcıların uzantıdan ihtiyaç duydukları özellikleri ve izinleri seçmelerine olanak tanıyın. Bir uzantının temel işlevi için gerekli olmayan özellikler varsa bunu isteğe bağlı hale getirin ve API'yi veya alan adını 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ı ilgili özelliği etkinleştirdiğinde uzantının neden belirli bir izne ihtiyaç duyduğunu açıklayabilmesini sağlar. Uzantı, kullanıcıya özellikleri etkinleştirme seçeneği sunabilir.

İzinlerin etkinleştirilmesini isteyen bir pop-up&#39;ın ekran görüntüsü

Tamam! tıklandığında hizmet çalışanında aşağıdaki etkinlik tetiklenir.

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();
      }
    }
  );
});

Ardından, kullanıcıya aşağıdaki istek sorulur.

İsteğe bağlı izin isteğinin ekran görüntüsü.

Uzantı güncellemesinde isteğe bağlı izinler de uygulanabilir. Bu işlem, uzantıyı devre dışı bırakmadan yeni özelliği kullanıcıların kullanımına sunar. Gerekli yeni izinlerle güncelleme yapıldığında da bu durum yaşanabilir.

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 sayısı ne kadar azsa, uzantının güvenliği ihlal edilirse o kadar az bilgi gösterilir.

İstenen tüm kullanıcı verileri dikkatli bir şekilde ele alınmalıdır. Verileri kayıtlı bir alana sahip güvenli bir sunucuda depolayın ve alın. Uzantı depolama alanı şifrelenmediğinden bağlanmak için her zaman HTTPS kullanın ve hassas kullanıcı verilerini uzantının istemci tarafında tutmaktan kaçının.

Veri tasarrufu ve gizli mod

Uzantılar, storage API'yi kullanarak veya verilerin kaydedilmesini sağlayan sunucu istekleri göndererek verileri kaydedebilir. Uzantının bir şey kaydetmesi gerektiğinde, öncelikle bunun gizli bir pencereden olup olmadığını düşünün. Varsayılan olarak, uzantılar gizli pencerelerde çalışmaz.

Gizli mod, pencerede hiçbir parkur bırakmayacağına dair söz verir. Gizli pencerelerden alınan verilerle çalışırken, uzantılar bu sözü yerine getirmelidir. Bir uzantı normalde tarama geçmişini kaydediyorsa gizli pencerelerdeki geçmişi kaydetmeyin. Ancak uzantılar, gizli olsun veya olmasın herhangi bir pencereden 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});
  }
}