Berechtigungen deklarieren und Nutzer warnen

Ob eine Erweiterung auf Websites und die meisten Chrome APIs zugreifen kann, hängt von der für sie deklarierten Berechtigungen. Die Berechtigungen sollten auf das beschränkt sein, was für die Funktionalität erforderlich ist. Durch das Einschränken von Berechtigungen werden die Funktionen einer Erweiterung festgelegt und das mögliche Eindringen in Daten reduziert. wenn die Erweiterung von einem Angreifer manipuliert wurde. Schützen Sie Erweiterungen und Nutzer, indem Sie explizite, minimale und optionale Berechtigungen.

Berechtigungen verwalten

Berechtigungen sind bekannte Strings, die sich auf eine Chrome API beziehen, oder Übereinstimmungsmuster, die Zugriff auf einem oder mehreren Hosts. Sie sind im Manifest aufgeführt und als erforderliche Berechtigungen oder optionalen Berechtigungen.

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

Beschränken Sie die erforderlichen Berechtigungen auf die Funktionen, die für die Hauptfunktion der Erweiterung erforderlich sind. Eine Erweiterung sollte nicht mehr Berechtigungen anfordern, als sie derzeit benötigt. nicht zukunftssicher sind, Berechtigungen anfordern, die bei Aktualisierungen möglicherweise erforderlich sind.

Berechtigungen, die für optionale Funktionen erforderlich sind, sollten als optionale Berechtigungen registriert werden. Dieses können Nutzer selbst entscheiden, wie viel Zugriff sie für eine Erweiterung gewähren möchten und welche Funktionen erwünscht sind.

Erforderliche Berechtigungen ermitteln

Eine einfache Erweiterung muss möglicherweise mehrere Berechtigungen anfordern und es werden viele Berechtigungen angezeigt Warnungen bei der Installation. Nutzer vertrauen eher Erweiterungen mit eingeschränkten Warnungen oder wenn ihnen Berechtigungen erklärt werden.

Warnungen zu Erweiterungsberechtigungen bei der Installation

Identifizieren Sie die Hauptfunktion einer Erweiterung und die dafür erforderlichen Berechtigungen. Erwägen Sie Funktionen werden optional, wenn für sie Berechtigungen mit Warnungen erforderlich sind.

Optionale Berechtigungen mit Ereignissen auslösen

Die Hauptfunktion der optionalen Beispielerweiterung für Berechtigungen überschreibt die „Neuer Tab“-Seite. Eine Funktion zeigt das Tagesziel der Nutzenden an. Für diese Funktion wird nur der Speicherplatz benötigt ohne Warnung.

Erweiterungsschaltfläche zur Aktivierung zusätzlicher Funktionen

Die Erweiterung bietet eine zusätzliche Funktion: die Top-Websites des Nutzers anzeigen. Für diese Funktion ist die topSites enthalten, für die eine Warnung angezeigt wird.

Erweiterungswarnung für die topSites API

Entwicklung von Funktionen, die auf Berechtigungen angewiesen sind, wobei optionale Warnungen erforderlich sind, und diese einführen Funktionen bieten Nutzern eine risikofreie Einführung in die Erweiterung. Außerdem können Nutzer eine Erweiterung weiter anpassen und erhalten die Möglichkeit, Warnungen erläutern.

Die Berechtigung „activeTab“ ersetzen

Die Berechtigung activeTab gewährt vorübergehenden Zugriff auf die Website, auf der sich der Nutzer befindet, und ermöglicht Erweiterung, um die Berechtigung "tabs" auf dem aktuellen Tab zu verwenden. Es ersetzt die Notwendigkeit "<all_urls>" und zeigt bei der Installation keine Warnung an.

Ohne ActiveTab:

Benutzeroberfläche für Berechtigungen ohne ActiveTab

Mit ActiveTab:

Benutzeroberfläche für Berechtigungen mit „activeTab“

Die Berechtigung „activeTab“ gewährt einer Erweiterung vorübergehenden Zugriff auf den aktuell aktiven Tab, wenn die Der Nutzer ruft die Erweiterung auf. Wenn die Erweiterung kompromittiert wurde, muss der Angreifer warten, damit der Nutzer die Erweiterung aufrufen kann, bevor er Zugriff erhält, und dieser Zugriff bleibt so lange bestehen, bis eine Navigation oder das Schließen des Tabs.

Solange die Berechtigung activeTab für einen Tab aktiviert ist, kann eine Erweiterung:

  • Rufe auf diesem Tab tabs.executeScript oder tabs.insertCSS auf.
  • Rufen Sie die URL, den Titel und das Favicon für diesen Tab über eine API ab, die ein tabs.Tab-Objekt zurückgibt.
  • Netzwerkanfragen auf dem Tab an den Hauptframe des Tabs mit der Methode webRequest abfangen der API erstellen. Die Erweiterung ruft vorübergehend Hostberechtigungen für den Hauptframe des Tabs ab.

Mit folgenden Nutzergesten wird activeTab aktiviert:

Zugriff erlauben

Wenn eine Erweiterung auf file://-URLs zugreifen muss oder im Inkognitomodus arbeitet, müssen Nutzer: Sie können den Zugriff auf diese Funktionen auf der Detailseite der Erweiterung unter chrome://extensions aktivieren.

Datei-URLs und den Inkognitomodus auf der Detailseite der Erweiterung zulassen

Eine Erweiterung kann durch den Aufruf von extension.isAllowedIncognitoAccess() oder kann auf file:// URLs ausgeführt werden mit extension.isAllowedFileSchemeAccess()

Informationen zu Berechtigungen

Es gibt Berechtigungswarnungen, um die Funktionen zu beschreiben, die eine API den Nutzern der Erweiterung gewährt. sind einige dieser Warnungen möglicherweise auf den ersten Blick nicht offensichtlich. Beispielsweise wird durch Hinzufügen des Elements "tabs" führt zu einer scheinbar nicht zusammenhängenden Warnung: Die Erweiterung kann Ihren Browserverlauf Aktivitäten Obwohl die chrome.tabs API möglicherweise nur zum Öffnen neuer Tabs verwendet wird, kann sie auch verwendet werden um die URL zu sehen, die mit jedem neu geöffneten Tab verknüpft ist, indem Sie die zugehörigen tabs.Tab-Objekte verwenden.

Implementieren Sie nach Möglichkeit optionale Berechtigungen oder eine weniger leistungsstarke API, um Alarme zu vermeiden. Warnungen.

Warnungen ansehen

Wenn eine Erweiterung als entpackte Datei geladen wird, werden keine Berechtigungswarnungen angezeigt. So rufen Sie eine Warnungen zu Berechtigungen der Erweiterung aufrufen, öffne chrome://extensions und stelle sicher, dass der Entwicklermodus aktiviert ist und klicken Sie auf ERWEITERUNG VERpacken.

&quot;Entwicklermodus&quot; ist aktiviert, dann klicke auf &quot;Erweiterung packen&quot;.

Geben Sie den Pfad zum Ordner der Erweiterung im Feld Stammverzeichnis der Erweiterung an und klicken Sie dann auf Schaltfläche Erweiterung packen. Ignorieren Sie das Feld Privater Schlüssel für ein erstmaliges Paket.

Geben Sie den Erweiterungspfad an und klicken Sie dann auf „Erweiterung packen“.

Chrome erstellt zwei Dateien, eine .crx-Datei und eine .pem-Datei, die die privaten Schlüssel enthält.

Gepackte Erweiterungsdateien

Verlieren Sie nicht den privaten Schlüssel! Bewahre die .pem-Datei an einem geheimen und sicheren Ort auf. es wird um die Erweiterung aktualisieren zu können.

Installieren Sie die Datei .crx, indem Sie sie auf der Verwaltungsseite der Chrome-Erweiterung ablegen.

Zu installierende Datei ablegen

Nachdem die Datei .crx abgelegt wurde, fragt der Browser, ob die Erweiterung hinzugefügt werden kann, und zeigt Warnungen.

Warnung für „Neuer Tab“-Erweiterung

Berechtigungen mit Warnungen

Hinweis:Berechtigungstabellen werden auf Best-Effort-Basis aktualisiert und können leichte Abweichungen enthalten. mit den aktuellen Warnungen. Außerdem werden bei einigen Berechtigungen möglicherweise keine Warnungen angezeigt, wenn sie mit andere Berechtigungen. Die Warnung "tabs" wird beispielsweise nicht angezeigt, wenn die Erweiterung auch fordert "<all_urls>" an. So prüfen Sie die neuesten Warnungen zu Erweiterungsberechtigungen: die Schritte unter Warnungen ansehen

Berechtigung Beschreibung Warnung
  • "http://*/*"
  • "https://*/*"
  • "*://*/*"
  • "<all_urls>"
Gewährt allen Hosts Zugriff auf die Erweiterung. Möglicherweise müssen Sie die Deklaration von Hostberechtigungen vermeiden, indem Sie die Berechtigung activeTab. Alle Ihre Daten auf von Ihnen besuchten Websites lesen und ändern
"https://HostName.com/" Gewährt der Erweiterung Zugriff auf "https://HostName.com/". Eventuell müssen Sie keine Hostberechtigungen mithilfe der Berechtigung activeTab. Eigene Daten auf HostName.com lesen und ändern
"bookmarks" Gewährt der Erweiterung Zugriff auf die chrome.bookmarks. Lesezeichen lesen und ändern
"clipboardRead" Erforderlich, wenn die Erweiterung document.execCommand('paste') verwendet. Daten lesen, die Sie kopieren und einfügen
"clipboardWrite" Gibt an, dass die Erweiterung document.execCommand('copy') oder document.execCommand('cut'). Daten ändern, die Sie kopieren und einfügen
"contentSettings" Gewährt der Erweiterung Zugriff auf die chrome.contentSettings API. Einstellungen für Websites ändern auf Funktionen wie Cookies, JavaScript, Plug-ins, Standortbestimmung, Mikrofon, Kamera usw.
"debugger" Gewährt der Erweiterung Zugriff auf die chrome.debugger.
  • Auf das Backend für Seiten-Debugger zugreifen
  • Alle Ihre Daten auf von Ihnen besuchten Websites lesen und ändern
"declarativeNetRequest" Gewährt der Erweiterung Zugriff auf die chrome.declarativeNetRequest API. Seiteninhalte blockieren
"desktopCapture" Gewährt der Erweiterung Zugriff auf die chrome.desktopCapture API. Inhalte auf dem Bildschirm erfassen
"downloads" Gewährt Ihrer Erweiterung Zugriff auf die chrome.downloads API. Downloads verwalten
"geolocation" Ermöglicht der Erweiterung, die HTML5 API für die Standortbestimmung zu verwenden ohne den Nutzer um seine Berechtigung zu bitten. Eigenen Standort erkennen
"history" Gewährt der Erweiterung Zugriff auf die chrome.history API. Browserverlauf lesen und ändern
"management" Gewährt der Erweiterung Zugriff auf die chrome.management API. Apps, Erweiterungen und Designs verwalten
"nativeMessaging" Gewährt der Erweiterung Zugriff auf die native Messaging API. Mit zusammenarbeitenden nativen Anwendungen kommunizieren
"notifications" Gewährt der Erweiterung Zugriff auf die chrome.notifications API. Benachrichtigungen anzeigen
"pageCapture" Gewährt der Erweiterung Zugriff auf die chrome.pageCapture API. Alle Ihre Daten auf von Ihnen besuchten Websites lesen und ändern
"privacy" Gewährt der Erweiterung Zugriff auf die chrome.privacy API. Datenschutzeinstellungen ändern
"proxy" Gewährt der Erweiterung Zugriff auf die chrome.proxy API. Alle Ihre Daten auf von Ihnen besuchten Websites lesen und ändern
"system.storage" Gewährt der Erweiterung Zugriff auf die chrome.system.storage API. Speichergeräte identifizieren und auswerfen
"tabCapture" Gewährt den Erweiterungen Zugriff auf die chrome.tabCapture API. Alle Ihre Daten auf von Ihnen besuchten Websites lesen und ändern
"tabs" Gewährt der Erweiterung Zugriff auf privilegierte Felder der Tab-Objekte, die von verschiedenen APIs verwendet werden einschließlich chrome.tabs und chrome.windows. In In vielen Fällen ist es nicht nötig, in der Erweiterung die Berechtigung "tabs" für die Nutzung von für diese APIs. Browserverlauf lesen
"topSites" Gewährt der Erweiterung Zugriff auf die chrome.topSites API. Liste der am häufigsten besuchten Websites lesen
"ttsEngine" Gewährt der Erweiterung Zugriff auf die chrome.ttsEngine API. Alle mit künstlicher Sprachausgabe gesprochenen Texte lesen
"webNavigation" Gewährt der Erweiterung Zugriff auf die chrome.webNavigation API. Browserverlauf lesen

Berechtigungen aktualisieren

Wenn Sie eine Erweiterung mit zusätzlichen Berechtigungen aktualisieren, wird sie möglicherweise vorübergehend deaktiviert. Die Nutzenden müssen und reaktivieren Sie sie, nachdem Sie den neuen Warnungen zugestimmt haben.

Wenn der Nutzer eine Erweiterung, die jetzt die Berechtigung tabs enthält, manuell aktualisiert, erhält er auf der Verwaltungsseite eine Warnung.

Berechtigung zum Hinzufügen von Tabs

Wenn die Erweiterung automatisch aktualisiert wird, bleibt sie deaktiviert, bis der Nutzer den neuen Nutzungsbedingungen zustimmt. Berechtigungen.

Erweiterung wurde deaktiviert

Berechtigungen erteilen

Dies lässt sich vermeiden, indem Sie die neue Funktion optional machen und neue Berechtigungsaktualisierungen optional_permissions im Manifest.