Datenschutz für Nutzer

Nutzer installieren keine Erweiterung, wenn sie ihre Privatsphäre gefährdet oder mehr Berechtigungen anfordert, als sie zu benötigen scheint. Berechtigungsanfragen sollten für Nutzer sinnvoll sein und sich auf die kritischen Informationen beschränken, die für die Implementierung der Erweiterung erforderlich sind. Erweiterungen, die Nutzerdaten erheben oder übertragen, müssen die Richtlinien unter Schutz der Privatsphäre von Nutzern einhalten.

Schützen Sie Erweiterungsnutzer und respektieren Sie ihre Privatsphäre, indem Sie diese Vorsichtsmaßnahmen ergreifen, um ihre Identität zu schützen.

Erforderliche Berechtigungen reduzieren

Die APIs, auf die eine Erweiterung zugreifen kann, werden im permissions Feld des Manifests angegeben. Je mehr Berechtigungen gewährt werden, desto mehr Möglichkeiten hat ein Angreifer, Informationen abzufangen. Es sollten nur die APIs aufgeführt werden, von denen eine Erweiterung abhängt, und weniger invasive Optionen sollten in Betracht gezogen werden. Je weniger Berechtigungen eine Erweiterung anfordert, desto weniger Berechtigungswarnungen werden einem Nutzer angezeigt. Nutzer installieren eher eine Erweiterung mit wenigen Warnungen.

Erweiterungen sollten den Zugriff auf Nutzerdaten nicht „zukunftssicher“ machen, indem sie Berechtigungen anfordern, die sie derzeit nicht benötigen, aber in Zukunft implementieren könnten. Fügen Sie Erweiterungsupdates neue Berechtigungen hinzu und machen Sie sie optional.

activeTab

Erweiterungen, die Hostberechtigungen zum Einfügen von Skripts verwenden, können häufig stattdessen activeTab verwenden. Die Berechtigung activeTab gewährt einer Erweiterung nur dann vorübergehenden Zugriff auf den aktuell aktiven Tab, wenn der Nutzer die Erweiterung aufruft. Der Zugriff wird beendet, wenn der Nutzer den aktuellen Tab verlässt oder schließt. Sie dient als Alternative für viele Verwendungen von <all_urls>.

{
  "name": "Very Secure Extension",
  "version": "1.0",
  "description": "Example of a Secure Extension",
  "permissions": ["activeTab"],
  "manifest_version": 3
}

Bei der Installation der Berechtigung „activeTab“ werden keine Warnmeldungen angezeigt.

Optionale Berechtigungen verwenden

Ermöglichen Sie Nutzern, auszuwählen, welche Funktionen und Berechtigungen sie von einer Erweiterung benötigen, indem Sie optionale Berechtigungen einbeziehen. Wenn eine Funktion für die Hauptfunktion einer Erweiterung nicht erforderlich ist, machen Sie sie optional und verschieben Sie die API oder Domain in das Feld optional_permissions.

{
  "name": "Very Secure Extension",
  ...
  "optional_permissions": [ "tabs", ],
  "optional_host_permissions": ["https://www.google.com/" ],
  ...
}

Durch optionale Berechtigungen kann eine Erweiterung erklären, warum sie eine bestimmte Berechtigung benötigt, wenn der Nutzer die entsprechende Funktion aktiviert. Die Erweiterung kann dem Nutzer eine Option zum Aktivieren von Funktionen anbieten.

Screenshot eines Pop-ups, in dem Sie aufgefordert werden, Berechtigungen zu aktivieren

Wenn Sie auf Okay! klicken, wird das folgende Ereignis im Service Worker ausgelöst.

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

Der Nutzer wird dann mit der folgenden Anfrage aufgefordert.

Screenshot der Anfrage für optionale Berechtigungen

Optionale Berechtigungen können auch in einem Erweiterungsupdate implementiert werden. Dadurch wird die neue Funktion für Nutzer verfügbar, ohne dass die Erweiterung deaktiviert wird. Dies kann passieren, wenn Sie mit neuen erforderlichen Berechtigungen aktualisieren.

Nutzerinformationen einschränken und schützen

Fordern Sie nur die Mindestmenge an Daten an, die eine Erweiterung benötigt. Je weniger Informationen eine Erweiterung von einem Nutzer anfordert, desto geringer ist das Risiko, wenn die Erweiterung kompromittiert wird.

Alle angeforderten Nutzerdaten sollten sorgfältig behandelt werden. Speichern und rufen Sie Daten auf einem sicheren Server mit einer registrierten Domain ab. Verwenden Sie immer HTTPS, um eine Verbindung herzustellen, und speichern Sie keine sensiblen Nutzerdaten auf der Clientseite einer Erweiterung, da der Erweiterungsspeicher nicht verschlüsselt ist.

Daten speichern und Inkognitomodus

Erweiterungen können Daten mit der Storage API speichern oder Serveranfragen stellen, die zum Speichern von Daten führen. Wenn die Erweiterung etwas speichern muss, prüfen Sie zuerst, ob es sich um ein Inkognitofenster handelt. Standardmäßig werden Erweiterungen nicht in Inkognitofenstern ausgeführt.

Der Inkognitomodus verspricht, dass das Fenster keine Spuren hinterlässt. Wenn Erweiterungen mit Daten aus Inkognitofenstern arbeiten, sollten sie dieses Versprechen einhalten. Wenn eine Erweiterung normalerweise den Browserverlauf speichert, sollte sie den Verlauf aus Inkognitofenstern nicht speichern. Erweiterungen können jedoch Einstellungen aus jedem Fenster speichern, unabhängig davon, ob es sich um ein Inkognitofenster handelt.

Prüfen Sie die incognito Eigenschaft des entsprechenden tabs.Tab oder windows.Window Objekts, um zu ermitteln, ob sich ein Fenster im Inkognitomodus befindet.

function saveTabData(tab) {
  if (tab.incognito) {
    return;
  } else {
    chrome.storage.local.set({data: tab.url});
  }
}